2011-06-22 12 views
0

如何從iOS 4中的UIView加載nib?如何從iOS 4中的UIViews加載nib?

我沒有UIViewController,因爲我將此自定義視圖添加到父視圖。

我想從nib文件初始化這個自定義視圖。我應該使用哪種初始化器? initWithFrame或initWithCoder?

到目前爲止,我只在界面構建器中分配了自定義類。 (見圖:http://cl.ly/7pmj)。這是必要的嗎?如果是這樣,它仍然沒有工作,爲什麼它不夠?

NB我在StackOverflow中找到了this related question。但是,它沒有解釋如何使用筆尖初始化視圖本身。

我需要自定義drawRect方法,對於這個視圖,所以我不能只是從nib文件中添加一個子視圖。我需要從nib文件初始化視圖本身。

感謝

回答

0

使用從相關的問題(一個NSBundle loadNibNamed)的方法,並確保在失主是具有一個IBOutlet有問題的視圖中的對象。

將iboutlet掛接到界面構建器中的視圖(您需要將IB中所有者的類設置爲負載nib調用中所有者的類)。

筆尖將視圖加載到該iboutlet變量中。

在.h文件中:

IBOutlet UIView *myView; 

在.m文件:

[[NSBundle mainBundle] loadNibNamed:@"viewToLoad" owner:self options:nil]; 
[someOtherView addSubView:myView]; 

剩下的就是在IB。

1

是的,您必須在您的nib文件中更改自定義視圖類。 確保兩件事: 1.轉到yourCustomView.nib文件,選擇對象中的視圖,然後確保自定義類在身份檢查器下是正確的。 2.在youCustomView.m文件中,確保你有這個零件:

- (id)initWithCoder:(NSCoder*)coder 
{ 
    if ((self = [super initWithCoder:coder])) 
    { 
     //add custom change after init from nib. 
    } 
    return self; 
}