【问题标题】:Creating a view with multiple objects/layers [closed]创建具有多个对象/层的视图 [关闭]
【发布时间】:2013-02-03 21:25:32
【问题描述】:

我正在寻找有关如何在代码中创建复杂视图的教程。

例如,视图的背景图像,带有按钮的多个子视图。

有没有关于如何完成这个的教程?

【问题讨论】:

  • 你试过什么?真的,没有关于如何创建“复杂视图”的教程。您要么知道如何制作视图并将子视图放入其中,要么您不知道。如果你只能做一个,你可以将它扩展到你想要的复杂程度。

标签: ios ios5 uiview uiviewcontroller


【解决方案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
    猜你喜欢
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    • 2013-02-17
    • 2013-12-31
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 2015-05-23
    相关资源
    最近更新 更多