UIView をサブクラス化する目的の c クラス「customTable.h」を作成しました。
次に、XIB でカスタム ビューを作成しました。ID インスペクタに移動し、カスタム クラスの下で、作成したクラスの名前 (customTable) をファイルの所有者として選択しました。xib の customTable ビューに、いくつかの UILabels とサブビューを追加しました。サブビューについては、それを選択してカスタム クラスに移動し、別のカスタム クラス「menuTable」を選択しました。
customTable.h ファイルで、XIB からの menuTable を IBOutlet としてリンクしました。これは、ビューの初期化でアウトレットの構成を実行できるようにするためです。
私が持っているcustomTable.mファイルで:
- (id)init
{
if(self = [super init])
{
[self initialize];
}
return self;
}
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
[self initialize];
}
return self;
}
- (id)initWithCoder:(NSCoder *)aDecoder
{
if(self = [super initWithCoder:aDecoder])
{
[self initialize];
}
return self;
}
- (void)initialize
{
/*some special configuration code for menuTable
is here */
}
ストーリーボードで、ViewController のビューにサブビューを追加し、サブビューでカスタム クラス「customTable」を使用するようストーリーボードに伝えました。ビューコントローラーの .h ファイルで、このビューを IBOutlet としてリンクしました。
@property (weak, nonatomic) IBOutlet customTable *cView;
シミュレーターで実行すると、ビューコントローラーにサブビューが表示されません。customTable.m ファイルにいくつかのブレーク ポイントを追加し、初期化メソッドが呼び出されています。では、なぜ表示されないのでしょうか。