发生了一件奇怪的事情,我试图构建我的自定义tablecell,但我的initWithStyle没有被调用。
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
我的Tablecell看起来很正常
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
NSLog(@"xx1111");
}
return self;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
我如何尝试加载Customcell笔尖:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *TFDCustomCell = @"TFDCell";
TFDCell *cell = (TFDCell *)[tableView dequeueReusableCellWithIdentifier:TFDCustomCell];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"TFDCell"
owner:self options:nil];
for (id oneObject in nib) if ([oneObject isKindOfClass:[TFDCell class]])
cell = (TFDCell *)oneObject;
}
return cell;
}
但NSLog(@"xx1111");
doenst出现在我的日志中。当我将NSLog置于'setSelected'时,它可以正常工作
答案 0 :(得分:13)
解决方案很简单
-(id)initWithCoder:(NSCoder *)aDecoder
{
NSLog(@"initWithCoder");
self = [super initWithCoder: aDecoder];
if (self)
{
}
return self;
}
答案 1 :(得分:5)
据我所知,如果从nib initWithStyle:
方法加载视图(在当前大小写单元格中),则不会被调用。重载awakeFromNib:
方法而不是进行自定义初始化。
答案 2 :(得分:0)
您没有使用 initWithStyle 初始化表格的单元格,因此您的自定义单元格的 initWithStyle 不会被触发。但是, dequeueReusableCellWithIithntifier 的初始化调用将调用 awakeFromNib 。