更简单的方法来选择UITableView中的所有行

时间:2014-01-16 17:13:29

标签: ios uitableview nsindexpath

我希望在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'复杂性,但是有没有更好的方法来选择所有细胞?

2 个答案:

答案 0 :(得分:2)

这是选择所有单元格的唯一方法。真正的问题是为什么你想要选择所有的细胞?你选择它们来获得UITableView代表回调吗?您是否为UI用途选择它们?

答案 1 :(得分:0)

你不能在tableView中引用所有单元格,因为tableView没有“拥有”所有单元,因为它使用了重用/出列。

如果“UI目的”仅表示视觉效果,则可以循环 通过tableview中的所有可见单元格,并将alpha设置为0.5或类似的东西,如果你想淡出它们,就好像它们被选中/取消选择一样,你可以做一些[UIView animate .. ..]呼吁所有人。如果您要执行此类操作,您可能需要考虑在动画发生的短时间内禁用滚动,因为如果您在滚动任何新单元格时在可见单元格上执行动画,则不会那个动画。完成动画后,在完成块中,您可以重新启用滚动。