【问题标题】:How to quick select all rows in iOS5 UITableView如何快速选择 iOS5 UITableView 中的所有行
【发布时间】:2012-03-16 02:55:41
【问题描述】:

使用 iOS-5 UITableView 允许多重选择,有没有什么快速的方法可以选择(并突出显示)所有行?我说的是 fetchedResultsController 的数千行数据。

我已经尝试过 selectRowAtIndexPath:animated 循环,但对于大型数据集来说这似乎不是一个好主意。

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

谢谢

【问题讨论】:

  • 也许这会有所帮助stackoverflow.com/questions/308081/…
  • 最近有人有类似的问题,但我找不到链接。他的问题通过回避选择问题得到了解决——如果您想对所有行执行某些操作,那么为它设置一个按钮可能更有意义(例如“删除所有”)。

标签: objective-c cocoa-touch uitableview ios5


【解决方案1】:

据我所知,您无法选择行,只有selectRowAtIndexPath:

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

【讨论】:

  • 有这么多行很好。 UITableView 旨在处理大量行。
  • 我同意。但是行选择不同意你
【解决方案2】:

我遇到了同样的问题,我有几个单元格尚未创建。我不得不选择它们。 但是您无法到达未创建的单元格。所以我不能使用 getTableViewCellForRowAtIndex: 函数。

我有一个针对选定实体的解决方案,我将整个集合设置为 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];
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-29
    • 2014-11-27
    • 2016-01-30
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    相关资源
    最近更新 更多