4

インターフェイスビルダーでカスタム UIView (多くのサブビュー、UITextFields など) を作成するにはどうすればよいですか?

IBで作成された多くのサブビューを備えた単純なUIViewだけのNIBを備えたviewControllerは必要ありません。これは、initを割り当てて使用するだけです。これは可能ですか?

4

1 に答える 1

16

はい、nib で UIView を作成できます。ビュー ベースの nib を作成すると、それが UIView になります。ビュー コントローラはありません (ただし、多くの場合、ビュー コントローラを nib のファイルの所有者にします)。

カスタム ビュー クラスを作成し、xib のビューのクラスをそのカスタム クラスに変更して、そのビューに IBOutlets を接続する必要があります。コントローラーでビューを使用する場合は、次のようにインスタンス化できます。

UINib *nib = [UINib nibWithNibName:@"CustomView" bundle:nil];
CustomView *view = [[nib instantiateWithOwner:self options:nil] objectAtIndex:0];

このメソッドの制限は、アウトレットがビュー クラスに属し、ビュー コントローラーに属していないことです。これは、MVC の意味で正しいことではない可能性があります (正しい可能性があります)。

于 2013-08-07T17:51:52.860 に答える