2012-02-28 84 views
1

此前,我使用代碼生成程序,並且我有一個超級類,它始終具有背景圖像。但現在我將編碼更改爲使用XIB,如何在裝入Nib後插入視圖?但我不希望我所有的XIB都有看法。謝謝。如何在加載筆尖後添加視圖?

回答

1

awakeFromNib是正確的使用方法。您不想通過添加子視圖來掩蓋視圖。改爲插入子視圖。

- (void)awakeFromNib 
{ 
    UIView *targetView; 
    UIView *viewToInsert = [self pointerToViewToInsert]; 

    for (UIView *aSubview in self.view.subviews){ 
     if ([aSubview isEqual:self.someView]){ 
      targetView = aSubview; 
      break; 
     } 
    } 
    if (targetView){ 
     int targetIndex = [self.view.subviews indexOfObject:targetView]; 
     [self.view insertSubview:viewToInsert atIndex:targetIndex]; 
} 
+0

很高興知道*某人*可以幫助他 – QED 2012-02-28 06:53:29

+0

在大多數情況下for循環可以省略。把它放在那裏,以顯示如何獲得符合特定標準的子視圖的索引。 – Thomas 2012-02-29 01:01:07

2
-(void)awakeFromNib { 
    [view addSubview:newView]; 
} 
+0

它在加載XIB之後執行,但我想在加載XIB之前有一些東西。例如,我有一個按鈕。在awakeFromNib中,我使用添加標籤,標籤位於按鈕頂部,但我希望按鈕下方的標籤。 – DNB5brims 2012-02-28 02:48:32

+2

您的問題詢問如何在加載NIB後插入視圖。您無法將子視圖添加到尚未加載的視圖。 – QED 2012-02-28 02:57:38

+0

你可以用@TedWong的不同順序添加項目。添加標籤然後按鈕。 Whala,他們是按你想要的順序。 – sasquatch 2012-02-28 04:35:44