当tableView位于搜索栏显示控制器的后台时,是否有人成功地重新加载了tableView?看照片,看看发生了什么。
我有一个带有搜索显示控制器的UITableViewController。在显示搜索显示控制器的表视图的同时,当我在UITableViewController的表视图上调用reloadData时,来自UITableViewController的剖视图头被绘制到搜索显示控制器的视图上。
以下是在搜索显示控制器视图顶部显示部分标题视图的快照:
更新:我将代码简化为一个简单的搜索显示控制器和UITableView。如果在searchBar处于活动状态时在tableView上重新加载数据。这个问题仍然存在。

发布于 2011-08-07 17:18:41
我希望你知道你需要两个UITableView才能让搜索栏工作。当搜索处于活动状态时,您应该管理并显示搜索结果表,否则将显示原始搜索结果表。
来自苹果公司的文档:The results are displayed in a table view that’s created by the search display controller.
因此,您不应重新加载原始的UITableView,而应确保 results表的datasource是正确的。
UISearchDisplayController有一个名为searchResultsTableView的属性,您不必使用reloadData专门重新加载该属性。相反,它将通过searchDisplayController:shouldReloadTableForSearchString:等UISearchDisplayDelegate协议中的方法进行更新。
干杯,
萨沙
发布于 2012-05-18 12:13:47
我就遇到了这个问题。如果您的情况类似于我的情况,则原因是self.tableView reloadData即使在self.tableView低于searchResultsTableView的情况下也会重新绘制self.tableView标题。
self.tableView reloadData被调用1)当我从我的表视图数据源取数据时,2)在我的fetchedResultsController的设置器中。
此外,如果您的tableView控制器是fetchedResultsController的委托,则每当您的核心数据托管文档发生更改时,它都会接收更新。这也会导致标题被重新绘制。
解决方案:我在填充搜索结果时删除了self.tableView reloadData。此外,我还删除了作为fetchedResultsController委托的tableview控制器。
发布于 2011-08-03 20:24:41
使用NSLog尝试检查从UITableView中准确绘制横断面图标题的时间。也许你可以弄清楚为什么会发生这种情况。然后尝试使用scrollEnabled=NO,就像您所想的那样。
https://stackoverflow.com/questions/6880333
复制相似问题