2012-02-28 25 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

知ってうれしい* someone *彼を助けることができる – QED

+0

ほとんどの場合、forループは省略することができます。特定の基準に一致するサブビューのインデックスを取得する方法を示すためにそこに配置します。 – Thomas

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

XIBがロードされた後に実行されますが、XIBがロードされる前に何かしたいと思います。たとえば、ボタンがあります。 awakeFromNibでは、ラベルを追加します。ラベルはボタンの上にありますが、ボタンの下にラベルが表示されます。 – DNB5brims

+2

あなたの質問は、NIBがロードされた後にビューを挿入する方法を尋ねます。まだロードされていないビューにサブビューを追加することはできません。 – QED

+0

@TedWongという別の順序で項目を追加するだけで済みます。ラベルとボタンを追加します。 Whala、彼らはあなたが望む順序です。 – sasquatch

関連する問題