细胞标签去了哪里?

时间:2012-11-28 13:24:31

标签: objective-c ios

我已经创建了自己的类来显示类似电子表格的布局。我想将UITableViewCells入队并出列队列。我使用此代码执行此操作:

- (void) enqueueReusableCell: (ABTableViewCell *) cell {    

if (!enqueuedCells[cell.reuseIdentifier])
    enqueuedCells[cell.reuseIdentifier] = cell;
}

- (UITableViewCell *)dequeueReusableCellWithIdentifier:(NSString *)identifier { 
ABTableViewCell *cell;

if (enqueuedCells[identifier]) {
    cell = enqueuedCells[identifier];

    return cell.tableViewCell;
}

return nil;
}

(我有一个包装类,用于在排队存储一些额外数据时保存UITableViewCell)

问题在于,当我将单元格出列并尝试访问子视图时,我没有得到任何回报。在我的单元格出列后,以下行返回一个nil对象。

UILabel *label = (UILabel*) [cell viewWithTag:1];

这是在XCode 4.5.x上使用ARC。有什么想法吗?

完整来源是https://github.com/AaronBratcher/ABTableView/
(出列现在只返回零以避免问题)

1 个答案:

答案 0 :(得分:0)

我建议对UITableViewCell进行子类化。我没有看到拥有UITableViewCell ivar / property的包装类的优点或意义。只需创建UITableViewCell的子类并添加扩展属性/功能。