我有一个带有单个自定义表格视图单元格的tableview,随着时间的推移,这会导致一个有点复杂的结构,我希望简化和改进它。基本上在当前形式中,在单元格的左侧和右侧有图像和按钮,并且在中间可能有两个不同的标签。
单元格是根据它们所代表的条目,表格视图的部分和tableview的状态进行配置的,因此cellForRowAtIndexPath和willDisplayCell中的代码都变得非常混乱。配置包括隐藏/取消隐藏非标签子视图以及可能更改UILabel的帧。
您如何建议构建和改进此类代码?何时开始使用不同的自定义单元类?
答案 0 :(得分:1)
我会为您拥有的每种条目类型创建自定义子类。在每个单元子类上创建一个名为
的方法-(void)configureCell:(Entry *)entry
{
//do configuration stuff here
}
然后在你的cellForRowAtIndexPath中,执行以下操作:
Entry *entry = self.entryArray[indexPath.row];
UITableViewCell *cell;
switch( entry.entryType )
{
case EntryTypeOne:
CellTypeOne *cCell = (CellTypeOne *)[tableView dequeueReusableCellWithIdentifier:@"CellTypeOne" forIndexPath:indexPath
[cCell configureCell:entry];
cell = cCell;
break;
case EntryTypeTwo:
CellTypeTwo *cCell = (CellTypeTwo *)[tableView dequeueReusableCellWithIdentifier:@"CellTypeTwo" forIndexPath:indexPath
[cCell configureCell:entry];
cell = cCell;
break;
}
return cCell;
只是一些想法,因为我实际上并不知道如何设置代码或如何区分条目类型。