CustomView.xibファイルを使用してCustomView:UIViewを作成します。次に、ビューを別のXIB(例:UIViewController.xib)にドラッグして使用し、クラス:customViewを選択します。
CustomViewとaddSubViewをanotherViewに初期化すると、正常にロードできます。
- (void)viewDidLoad{
//Success load NIB
CustomView *aView = [[CustomView alloc] initWithFrame:CGRectMake(40, 250, 100, 100)];
[self.view addSubview:aView];
}
//CustomView.m
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
NSLog(@"INIT");
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
[[nib objectAtIndex:0] setFrame:frame];
self = [nib objectAtIndex:0];
}
return self;
}
この場合、CustomCellを別のXIBに描画して再利用し、クラスをCustomViewとして指定します。awakeFromNibが呼び出されることは知っていますが、CustomView.xibをロードする方法がわかりません。どうやってするか?
*編集:
initWithCoderは、クラスを指定するときにも呼び出されますが、ループが作成され、loadNibNamedでクラッシュします。どうして?
- (id)initWithCoder:(NSCoder *)aDecoder{
if (self = [super initWithCoder:aDecoder]) {
NSLog(@"Coder");
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"QSKey" owner:nil options:nil];
[[nib objectAtIndex:0] setFrame:self.bounds];
self = [nib objectAtIndex:0];
}
return self;
}