fut*_*te7 3 iphone initialization uitableview nib
我正在使用[[NSBundle mainBundle] loadNibNamed:...]从nib加载UITableViewCell.现在我想在我的代码中使用tableviewcell之前以编程方式进行一些后初始化工作.我应该把这段代码放在哪里,因为我似乎无法在initWithCoder方法中执行此操作,因为类中的标签对象仍为nil(因此无法设置任何内容).tableviewcell中的UILabel何时初始化(它们都被定义为IBOutlets)?
您应该子类化UITableViewCell
,并awakeFromNib
在其中放入一个方法,以便在从nib唤醒后执行初始化.
为了保持代码的灵活性,可以将这个初始化代码放在一个被myInit
调用的例程中awakeFromNib
,然后从应该调用它的其他地方调用它.
在经历了一些挣扎之后,我对这种情况采取了略微不同的方法.我是子类UITableViewCell
并且有一个这样的init例程:
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
[[NSBundle mainBundle] loadNibNamed:@"MyUITableViewCell" owner:self options:nil];
[self addSubview:self.contentView];
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
其中contentView
是一种IBOutlet
含有细胞的内容.这允许我的其余代码只是像任何其他单元一样调用此单元格.(除了一个讨厌的演员(MyUITableViewCell*)[tv dequeueReusableCellWithIdentifier:CellIdentifier];
)
归档时间: |
|
查看次数: |
3661 次 |
最近记录: |