2011-06-22 16 views
0

iOS 4のUIViewからnibを読み込むにはどうすればよいですか?iOS 4のUIViewからnibを読み込むにはどうすればよいですか?

私はこのカスタムビューを親ビューに追加するので、私はUIViewControllerを持っていません。

このカスタムビューをnibファイルから初期化します。どのイニシャライザを使用しますか? initWithFrameまたはinitWithCoder?

これまでのところ、インターフェイスビルダーでカスタムクラスを割り当てただけです。 (写真:http://cl.ly/7pmj参照)。これは必要ですか?もしそうなら、それはまだ動作していません、なぜそれで十分ではありませんか?

NB StackOverflowでthis related questionが見つかりました。しかし、それはペン先でビュー自体を初期化する方法を説明していません。

このビューでは、のdrawRectメソッドをカスタマイズする必要があります。そのため、nibファイルからサブビューを追加することはできません。 nibファイルからビュー自体を初期化する必要があります。

おかげ

答えて

0

関連する質問(NSBundle loadNibNamed)からメソッドを使用して、そのコールで所有者を確認して、問題のビューにIBOutletを持つオブジェクトです。

iboutletをインターフェイスビルダーのビューまでフックします(IBの所有者のクラスをload nib呼び出しの所有者のクラスに設定する必要があります)。

nibは、そのiboutlet変数にビューをロードします。 .hファイルで

IBOutlet UIView *myView; 

.mファイル内:

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

残りはIBです。

1

はい、nibファイルのカスタム表示クラスを変更する必要があります。 2つのことを確認してください。 1.CustomView.nibファイルに移動し、オブジェクト内のビューを選択し、アイデンティティインスペクタでカスタムクラスが正しいことを確認します。 2. youCustomView.mファイルで、次の部分があることを確認してください。

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