如何附加多个控制器来查看其子视图

PLZ帮助我我是iPhone开发中的新手,它是我的第二个示例代码。 我正在尝试将子视图添加到视图,并根据触摸的视图/子视图生成事件。我在主视图中添加了子视图,并且所有视图都一次显示。 我正在试验的项目是一个新创建的,干净的Window-Base应用程序。

我将下面的代码写入了唯一的viewController代码中:

@interface testViewController : UIViewController {

IBOutlet UIView *blueView1;
IBOutlet UIView *blueView2;
       :                        :
IBOutlet UIView *blueView6;

}

// ---揭露出口作为一个属性---

@property(nonatomic,retain)IBOutlet UIView * blueView1;

@property(nonatomic,retain)IBOutlet UIView * blueView2;

      :                      :      *blueView6;

// ---声明动作--- - (IBAction)viewClicked:(id)sender;

@结束

它的.m文件包含(loadView方法,我在其中附加了子视图,它们一次显示得很好。我试图做的是当我的view / subview被触摸时,它们会生成一个事件,它应该是根据它们的对象通过这种单一方法进行处理,从而相应地改变视图/子视图的背景颜色。

- (void)loadView {

self.view = [[UIView alloc] initWithFrame:CGRectMake(0,0,320,80)];

self.view.backgroundColor = [UIColor greenColor];

//创建一个简单的蓝色方块

CGRect blueFrame0 = CGRectMake(5,115,100,100);

UIView * blueView0 = [[UIView alloc] initWithFrame:blueFrame0];

blueView0.backgroundColor = [UIColor blueColor];

//创建一个简单的蓝色方块

CGRect blueFrame1 = CGRectMake(110,115,100,100);

UIView * blueView1 = [[UIView alloc] initWithFrame:blueFrame1];

blueView1.backgroundColor = [UIColor blueColor];

//创建一个简单的蓝色方块

CGRect blueFrame2 = CGRectMake(215,115,100,100);

UIView * blueView2 = [[UIView alloc] initWithFrame:blueFrame2];

blueView2.backgroundColor = [UIColor blueColor];

// ------------------------------------------------ -------------------------------------------------- ---------

//创建一个简单的蓝色方块

CGRect blueFrame3 = CGRectMake(5,220,100,100);

UIView * blueView3 = [[UIView alloc] initWithFrame:blueFrame3];

blueView3.backgroundColor = [UIColor blueColor];

//创建一个简单的蓝色方块

CGRect blueFrame4 = CGRectMake(110,220,100,100);

UIView * blueView4 = [[UIView alloc] initWithFrame:blueFrame4];

blueView4.backgroundColor = [UIColor blueColor];

//创建一个简单的蓝色方块

CGRect blueFrame5 = CGRectMake(215,220,100,100);

UIView * blueView5 = [[UIView alloc] initWithFrame:blueFrame5];

blueView5.backgroundColor = [UIColor blueColor];

[self.view addSubview:blueView0];

[self.view addSubview:blueView1];

[self.view addSubview:blueView2];

[self.view addSubview:blueView3];

[self.view addSubview:blueView4];

[self.view addSubview:blueView5];

[blueView0发布];

[blueView1发布];

[blueView2发布];

[blueView3 release];

[blueView4发布];

[blueView5发布];

[self.view发布];

} - (IBAction)viewClickedid)sender {

{view / subview} .backgroundColor = [UIColor blackColor];

}

我以这种方式委托代表

@interface testAppDelegate : NSObject <UIApplicationDelegate>

{

UIWindow *窗口;

testViewController * viewController; //为主视图

testViewController * viewController1; //用于subview1

testViewController * viewController2; //用于subview2

testViewController * viewController3; //用于subview3

**多达6个控制器

}

@property(nonatomic,retain)IBOutlet UIWindow *窗口;

@property(nonatomic,retain)IBOutlet testViewController viewController;

@property(nonatomic,retain)IBOutlet testViewController viewController1;

**多达6个控制器

@结束

在testAppdelegate.mi为主视图制作控制器,但我不知道如何将其他控制器附加到其他子视图。现在,当我触摸视图中的任何位置时,主视图颜色都会发生变化。 我怎样才能唯一识别不同的子视图触摸,并使其颜色变化??如何做到这一点?

- (void)applicationDidFinishLaunching:(UIApplication *)application {    


// Override point for customization after application launch

checkAppController *rootController = [checkAppController alloc];


[window addSubview:[rootController view]];

[window makeKeyAndVisible];

}

我正在使用这种方法获取所有触摸事件

- (void)touchesBeganNSSet *)touches withEventUIEvent *)event {

UITouch * touch = [触摸anyObject];

NSUInteger numTaps = [touch tapCount];

如果([touches count]> 1)

NSLog(@“mult-touches%d”,[touches count]);

if(numTaps <2){

} else {

NSLog(@“双击”);

}

}


这与您构建应用程序的方式有关。 对于BlueView1..6由单独的视图控制器处理,它是需要创建视图的视图控制器。

您需要为主视图控制器内的每个蓝色视图创建视图控制器,然后在每个蓝色视图控制器内的蓝色视图内创建每个蓝色视图。

链接地址: http://www.djcxy.com/p/84287.html

上一篇: How to attach more than one controller to views its subviews

下一篇: How to save picture to iPhone photo library?