将Interface Builder中创建的视图添加到以编程方式创建的视图中 - 是否可以完成?

时间:2010-07-21 18:28:22

标签: iphone interface view add builder

好的,所以我已经下载了一个开源项目,我正在考虑定制供个人使用(除非它变成了一个很棒的项目,在这种情况下谁知道)但是在任何一种情况下我都遇到了一些困难。

从一个起点我发现使用progmatic方法创建UI元素相当困难,只是找不到一个好的教程(如果有人有任何建议,将非常感激!)

所以我得出结论,也许我最好的方法是采取我希望修改的视图,在Interface Builder中重新创建它,然后将其添加到上一个视图,这里的问题是我可以'似乎让我知道如何做到这一点。如果有人想看到我可以提供它的代码,但它基于RemotePad开源项目(轻松搜索),我正在寻找替换TapView元素 - 我真的需要做的就是在三个鼠标下添加第四个按钮按钮,但它只是失去了我。

我想我真正想问的是,添加第四个按钮对我来说最好的方法是什么?理想情况下,按钮应该是“可换肤的”,即应该采用可以应用高亮模式的图像形式。

1 个答案:

答案 0 :(得分:4)

这实际上应该很容易实现。

  1. 首先,您需要为新按钮设置现有视图控制器(与您要添加按钮的视图关联的视图控制器)和IBOutlet。所以你添加如下内容:
    @property (nonatomic, retain) IBOutlet UIButton *myFourthButton;
    
  2. 接下来,使用Interface Builder创建nib文件。从一个空的IB文件开始,然后添加按钮。您还需要将文件所有者设置为视图控制器类的实例。然后将文件所有者的myFourthButton插座连接到新按钮。保存IB文件。

  3. 现在,您需要一些方法来在创建视图控制器时加载此NIB文件。我建议通过调用:

    在视图控制器的viewDidLoad:方法中执行此操作
    [[NSBundle mainBundle] loadNibNamed:@"yourNibFile" owner:self options:nil];
    
  4. NIB文件中的按钮现在应该连接到myFourthButton插座,现在您只需要将其添加到视图并定位它。下面我将它添加到视图控制器主视图中。但是,可能会有一个子视图,您应该将其添加到其中(取决于原始视图的设置方式)。同样,我会将此代码放在viewDidLoad中:在所有现有代码之后以编程方式设置视图(或者在其他方法中,如果该代码在其他地方)。

    [self.view addSubview:myFourthButton];  
    
    CGRect frame = myFourthButton.frame;
    frame.origin.x = 100;
    frame.origin.y = 100;
    myFourthButton.frame = frame;
    

    当您需要按钮实际响应点击事件时,您可以使用IBAction和Interface Builder将其连接到视图控制器,就像您期望的那样。