2010-07-21 76 views
2

好吧,我已经下载了一个开源项目,我正在寻找个人使用的定制(除非它变成一个伟大的项目,在这种情况下谁知道),但无论如何我都有一些困难。将在Interface Builder中创建的视图添加到Progmatically创建的视图 - 是否可以完成?

从起点我发现创建一个使用语用方法相当困难,只是找不到一个很好的教程在那里UI元素(如果任何人有这将是大加赞赏任何建议!)

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

我想我真正想问什么是我添加第四个按钮的最佳方式?理想情况下,该按钮应该是“可剥皮的”,即应该采用可以应用突出显示模式的图像的形式。

回答

4

这实际上应该很容易做到。

  1. 首先,你需要建立一个现有的视图控制器(与您要添加按钮视图相关联的一个)与一个IBOutlet为您的新按钮。因此,您添加如下内容:
     
    @property (nonatomic, retain) IBOutlet UIButton *myFourthButton; 
    
  2. 接下来,使用Interface Builder创建nib文件。从一个空的IB文件开始,并添加你的按钮。您还需要将文件所有者设置为视图控制器类的实例。然后将File Owner的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就像你希望你的视图控制器。

+0

这听起来像对我有意义。所以基本上我保持当前的.h和.m文件,并使用NIB来“欺骗”制作按钮?当我想添加一个IBAction到按钮时,我最终是否会像使用.xib添加新类一样完成此操作?明天晚上我会给出这个答案(我现在正在做一个大项目,我已经在Xcode中填充了整晚)!如果它适合我​​,我将标记为适当的答案: - ) – David26th 2010-07-21 20:14:40

+0

正确,您正在使用视图控制器的现有.h/.m文件。这并不是真正的“欺骗”,有很多实例可以将编程创建的界面元素和通过IB创建的界面元素进行混合(表格视图单元格就是一个很好的例子)。基本上,你不是自己实例化和配置UIButton,而是让nib加载器为你工作。在一天结束的时候,我认为你最喜欢的是什么是合理的。 – 2010-07-21 20:33:27

+0

在添加动作方面,首先在视图控制器的.h/.m文件中声明IBAction,然后将连接从UIButton拖到文件所有者(视图控制器)。 祝你好运! – 2010-07-21 20:36:04

相关问题