initWithStyle :( UITableViewCellStyle)未调用

时间:2013-01-19 13:59:08

标签: ios objective-c

发生了一件奇怪的事情,我试图构建我的自定义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'时,它可以正常工作

3 个答案:

答案 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