0

我有一个带有单个自定义表格视图单元格的表格视图,随着时间的推移导致结构有些复杂,我希望能够简化和改进它。基本上在当前的形式中,单元格的左右两侧都有图像和按钮,中间可能有两个不同的标签。

单元格是根据它们所代表的条目、表格视图的部分和表格视图的状态进行配置的,因此 cellForRowAtIndexPath 和 willDisplayCell 中的代码都变得非常混乱。该配置包括隐藏/取消隐藏非标签子视图以及可能更改 UILabel 的框架。

你会如何建议构建和改进这样的代码,你什么时候开始使用不同的自定义单元类?

4

1 回答 1

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;

只是一些想法,因为我实际上并不知道您的代码是如何设置的或您如何区分条目类型。

于 2013-08-26T23:03:15.660 回答