【发布时间】:2011-12-10 23:30:58
【问题描述】:
作为上一篇文章的后续问题:filtering content for UITableView
在为 UITableViews 过滤数据集时,假设我按照上一篇文章中的建议使用 NSPredicate,总体思路是否如下所示:
NSArray *allData;
NSMutableArray *filteredData;
- 当过滤器按钮被按下时,使用 NSPredicate 来填充
- filteredData 使用
[tableView reloadData];重新加载表
在我的tableView数据源和委托方法中,我基本上会检查过滤器按钮是否打开,如果它显示了filteredData,如果没有,则显示allData。
我不确定的是,在 WWDC 2010 的一个关于 tableview 的视频中,他们说 reloadData 是一项昂贵的操作,你应该更新你的视图,而不是使用 tableView 的插入/删除/替换方法。动画还为用户提供了正在发生的事情的上下文。那么如果是这样的话,你还使用reloadData吗?我似乎无法弄清楚如果打开过滤器并且未调用 reloadData,tableViews 将如何知道要显示什么。我假设如果打开过滤器,您将不得不重新加载数据,然后如果您想为用户提供一些正在发生的事情的上下文,还可以使用动画的插入/删除/替换方法更新视图。是对的吗?谢谢。
【问题讨论】:
标签: iphone uitableview filter