如何在iOS5 UITableView中快速选择所有行

时间:2012-03-16 02:55:42

标签: objective-c cocoa-touch uitableview ios5

使用iOS-5 UITableView允许多个选择,是否有任何快速的方法可以选择(并突出显示)所有行的良好性能?我在谈论fetchedResultsController的数千行数据。

我尝试过使用selectRowAtIndexPath:动画循环,对于庞大的数据集来说,这似乎不是一个好主意。

另外我发现如果使用tableview reloadData取消选择所有行的性能比deselectRowAtIndexPath:animated:在循环内更好。这是清除选择的安全方法吗?

由于

2 个答案:

答案 0 :(得分:1)

据我所知,您没有其他选择行的可能性,只有selectRowAtIndexPath:

我认为,你不应该在表格视图中有这么多行,尝​​试优化它。你真的需要这么多行吗?

答案 1 :(得分:0)

我遇到了同样的问题,我已经创建了几个单元格。我必须全部选择它们。 但是你无法到达未创建的单元格。所以我无法使用getTableViewCellForRowAtIndex:function。

我有一个选定实体的解决方案,我将整个集合设置为selectedcollection。 但我的问题出在UI上,我不得不向用户展示。

所以我决定创建一个checkedXXXTableViewCell,并从XXXTableViewCell继承这个类。 (他们完全使用相同的业务) 我在checkedXXXTableViewCell中选中了检查按钮(这是我的自定义checkButton)。

最后我需要更改我的cellForRowAtIndexPath:函数,如下所示。 它工作正常。 希望它能帮到你。 :)

-(UITableViewCell *)getCell:(Entity *)entity cellForRowAtIndexPath:(NSIndexPath *)indexPath identifier:(NSString *)cellIdentifier {
    if (allSelected == 1) {
        return [[CheckedxxxCell alloc] initWithEntity:entity index:indexPath.row reuseIdentifier:cellIdentifier];
    }
    else {
        return [[xCell alloc] initWithEntity:entity index:indexPath.row reuseIdentifier:cellIdentifier];
    }
}