我正在手动加载nib文件(用于UIView可重用性),用于加载 nib 文件的代码
- (NSArray*)loadMyNibFile
{
UINib *nib = [UINib nibWithNibName:@"customView" bundle:nil];
NSArray *topLevelObjs = [nib instantiateWithOwner:self options:nil];
NSLog(@"objects: %@", topLevelObjs);
return topLevelObjs;
}
加载笔尖名称后,我将其添加到UIScrollView中
NSArray *array = [self loadMyNibFile];
CustomView *view = [array objectAtIndex:0];
CGRect frame = CGRectMake(0, 0, 320, 216);
frame.origin.x = self.scrollView.frame.size.width * 2;
frame.origin.y = 99;
[view setFrame:frame];
[self.scrollView addSubview:view];
不是问题是当我以这种方式加载 nib 文件时,不会调用init
和initWithNibName
方法,如何解决这个问题?
提前谢谢你,
您应该重写[UIView initWithFrame:]
和[UIView initWithCoder:]
方法(请参阅 UIView 类参考)。
如果您总是从 NIB 加载视图,而不是手动创建,则最好覆盖awakeFromNib
(请参阅参考)。