我正在尝试了解[tableView dequeueReusableCellWithIdentifier:CellIdentifier]
的工作原理。这是我的情况:
我在IB中设计了我的UITableViewCell子类,现在我在我的子类中尝试样式我的子元素。不幸的是,方法[tableView dequeueReusableCellWithIdentifier:CellIdentifier]
似乎没有调用我的单元子类中的任何方法。我使用的方法是initWithCoder
,initWithFrame
或init
。
这是我的实际代码:
static NSString *BasicCellIdentifier = @"BasicCell";
GSFeedBasicTableViewCell *basicCell = [tableView dequeueReusableCellWithIdentifier:BasicCellIdentifier];
My Cells正在显示,但我想在我的子类中进一步自定义单元格,以避免在TableController中使用样式代码。任何提示都非常感谢。
答案 0 :(得分:2)
使用XIB时,需要先注册
[self.tableView registerNib:[UINib nibWithNibName:@"IBNameofthiscell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"youridentifier"];
然后您可以使用dequeueReusableCellWithIdentifier
3.然后使用此功能
CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
答案 1 :(得分:1)
当您将单元格出列时,将调用子类的initWithCoder:
方法。因此,您可以覆盖它以实现自定义行为。您还可以使用awakeFromNib
方法执行自定义。
如果您在代码中完全设计了单元格,则将调用子类的initWithStyle:reuseIdentifier:
方法而不是initWithCoder:
。