创建具有多个对象/层的视图 [关闭]
Posted
技术标签:
【中文标题】创建具有多个对象/层的视图 [关闭]【英文标题】:Creating a view with multiple objects/layers [closed] 【发布时间】:2013-02-03 21:25:32 【问题描述】:我正在寻找有关如何在代码中创建复杂视图的教程。
例如,视图的背景图像,带有按钮的多个子视图。
有没有关于如何完成这个的教程?
【问题讨论】:
你试过什么?真的,没有关于如何创建“复杂视图”的教程。您要么知道如何制作视图并将子视图放入其中,要么您不知道。如果你只能做一个,你可以将它扩展到你想要的复杂程度。 【参考方案1】:您应该阅读有关View Controller Programming Guide in ios 以及UIView documentation 的信息。
可以通过使用
为 UIView 对象提供多个子视图- (void)addSubview:(UIView *)view
UIView 对象的方法。
【讨论】:
【参考方案2】:你可以使用 addSubview:
UIView *view =[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320,200)];
UIImageView *imgV =[[UIImageView alloc] initWithFrame:CGRectMake(0,0,320,460)];
UIButton *btn1 =[[UIButton alloc] initWithFrame:CGRectMake(0, 0, 100,75)];
imgV.image = [UIImage imageNamed:@"background.png"];
[btn1 setTitle:@"Btn" forState:UIControlStateNormal];
[btn1 addTarget:self action:@selector(myAction:) forControlEvents:UIControlEventTouchUpInside];
[view addSubview:imgV];
[view addSubview:btn1];
[self.view addSubview:view];
这将创建一个带有背景图像和一个按钮的视图,如果您理解这个概念,那么您可以添加任意数量的对象。
【讨论】:
如果我在代码中创建一个按钮,我是否不需要头文件中的(IBAction)部分,以及该按钮的相关方法? 像我一样,[btn1 addTarget:self action:@selector(myAction:)... 你应该创建一个方法 -(void)myAction:(id)sender 来接收来自 btn1 的操作。 不需要在接口声明中添加IBOutlet
属性。此外,不需要在那里添加IBAction
方法。甚至不需要在某处添加方法声明,您只需在 @implementation
部分中定义方法即可。声明只是一种很好的风格,无论是在公共还是私人@interface
以上是关于创建具有多个对象/层的视图 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Rails 3 在同一视图中创建同一类的多个对象?
如何正确分离 JavaScript 视图/逻辑代码 [关闭]