我希望在UITableView中选择我正在使用for循环的所有行,如下面的代码所示:
- (void)selectAllRows
{
for (int row = 0; row < [self.tableView numberOfRowsInSection:1]; row ++)
{
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:row inSection:1];
[self.tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
}
}
我在NSIndexPath类或UITableView控制器上找不到任何直接委托来选择UITableView单元格上的所有行。这是'n'复杂性,但是有没有更好的方法来选择所有细胞?
答案 0 :(得分:2)
这是选择所有单元格的唯一方法。真正的问题是为什么你想要选择所有的细胞?你选择它们来获得UITableView
代表回调吗?您是否为UI用途选择它们?
答案 1 :(得分:0)
你不能在tableView中引用所有单元格,因为tableView没有“拥有”所有单元,因为它使用了重用/出列。
如果“UI目的”仅表示视觉效果,则可以循环 通过tableview中的所有可见单元格,并将alpha设置为0.5或类似的东西,如果你想淡出它们,就好像它们被选中/取消选择一样,你可以做一些[UIView animate .. ..]呼吁所有人。如果您要执行此类操作,您可能需要考虑在动画发生的短时间内禁用滚动,因为如果您在滚动任何新单元格时在可见单元格上执行动画,则不会那个动画。完成动画后,在完成块中,您可以重新启用滚动。