创建具有多个对象/层的视图 [关闭]

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 视图/逻辑代码 [关闭]

在 Android Studio 中创建一个包含多个对象的列表视图

如果存在多个视图控制器,如何关闭模式视图控制器

创建具有多个表的视图?

创建具有多个图标的 iPhone 视图(例如 Yelp、Old Facebook Launcher)