2010-07-21 37 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

相關問題