7
我经常需要表视图细胞设置为我使用下面的代码的初始选择的状态:选择一个表格视图细胞编程:selectRowAtIndexPath VS的setSelected
[self.tableView selectRowAtIndexPath:indexPath
animated:NO scrollPosition:UITableViewScrollPositionNone];
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
[cell setSelected:YES];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
我使用selectRowAtIndexPath:indexPath
和setSelected:YES
在同一时间,因为我不完全理解哪种方法是以编程方式选择单元格的首选方式。
我应该使用哪一个陈述,为什么?
谢谢@Nicky!在使用'selectRowAtIndexPath:animated:scrollPosition:'后,我会重新加载表格并根据单元格的选择状态('isSelected')在'cellForRowAtIndexPath'中设置复选标记? – AlexR 2013-02-17 11:54:42
嗯,我通常在一个单独的属性中存储带勾号的项目,感觉更加明确。因此,在'tableView:didSelectRowAtIndexPath:'中,您执行以下操作:重新加载两行,一行先选中标记,一位用户单击(没有动画),选择单击行(也没有动画),然后取消选择动画,一个很好的视觉效果。全部通过调用表视图的方法来完成。 – Nicky 2013-02-17 12:02:23
需要额外选择,因为细胞在重新加载后会丢失。你可以在那里设置附件类型,没有重新加载/选择就可以,但是我不想复制单元配置逻辑的任何部分。谁知道,也许明天我会用花哨的自定义选项标记或其他疯狂的东西:) – Nicky 2013-02-17 12:07:26