如何附加多个控制器来查看其子视图
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