我有一个带有几个 UITableView 的故事板。我想为 UITableViewCell 选择不同的显示类型的选定状态。我解释得更好。
直接进入代码我想要一个驱动突出显示类型的枚举或标志。
-(void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
switch(cellViewMode) {
case Simple:
[self simpleCell:selected];
break;
case Full:
[self fullCell:selected];
break;
default:
// default method...
break;
}
}
我正在寻找基于视图控制器类型设置此 cellViewMode 标志一次且永不更改的最佳方法,考虑到实际上我以故事板的通常推荐方式调用我的单元格,其中声明了标识符,而不是之前在 cellForRow: 中有一个静态 NSString *cellIdentifier 和一个 if 检查单元格存在的时候:
- (UITableViewCell *)tableView:(UITableView *)table cellForRowAtIndexPath:(NSIndexPath *)indexPath {
Obj *obj = // get obj from datasource
MyTableViewCell *cell = [table dequeueReusableCellWithIdentifier:MyTableCellIdentifier]; // <-- this is how it is done in storyboard
cell.cellTitle.text=obj.titleForCell;
cell.cellDescr.text=obj.descriptionForCell;
return cell;
}
我已经指定我需要一个标志,但我对其他解决方案持开放态度,比如类别,或者任何可能以优雅的方式运作良好的解决方案。