0

xibファイルと.hおよび.mファイルを持つカスタムUIViewがあります。私のカスタムビューには、いくつかのUILabelが含まれています。

UIViewをドラッグし、Identity Inspectorに移動し、クラス名をMyCustomViewに変更することで、このビューをUIViewControllerのxibファイルに追加しました。MyCustomViewは、ビューコントローラにIBOutletプロパティで接続されています。

ビューコントローラがロードされると、MyCustomViewの

- (id)initWithCoder:(NSCoder*)coder 

メソッドが呼び出されますが、そのラベルはいずれもViewControllerのビューに表示されません。どうすればこれを修正できますか?

私はすでに、以下を使用してコードを介してカスタムUIViewを追加する方法を知っています。

NSArray *nibContents = [[NSBundle mainBundle] loadNibNamed:@"MyCustomView" 
                                                     owner:self 
                                                   options:nil];
MyCustomView *view = [nibContents objectAtIndex:0];
[self.view addSubview:view];

しかし、xibファイルを介して追加する方法を知りたいです。しばらく検索しましたが、答えが見つかりませんでした。重複している場合は、正解を教えてください。


カスタムビューxibとビューコントローラーxibの画像は次のとおりです。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

4

2 に答える 2

1

恐れ入りますが、UIViewControllerのxibに独自のビューのxibをロードさせることはできません。これらのラベルをプログラムで独自のビューに追加する必要があります。

また

コードで示したように、プログラムでビューをビューコントローラのビューに追加します

于 2012-11-22T03:57:55.340 に答える
0

確実に知るためにもっと多くのコードを見る必要がありますが、あなたが抱えている問題は、カスタムビュー(UILabelsの親)がUILabelsディメンションを提供していないことだと思います。-[UIView setFrame:]を呼び出していません

これを確認するには、デバッガーに次のように入力します。

po [[UIApplication sharedApplication] keyWindow] recursiveDescription]

これにより、ビュー階層の説明が出力されます。UILbalのフレームが何であるかを確認してください。

于 2012-11-22T03:08:25.723 に答える