【问题标题】:UITableView Plain Style Section Header gets Redrawn on Search ViewUITableView 普通样式部分标题在搜索视图上被重绘
【发布时间】:2011-07-30 00:41:29
【问题描述】:

有没有人成功地重新加载了 tableView,而 tableView 在搜索栏显示控制器的背景中?看看照片会发生什么。

我有一个带有搜索显示控制器的 UITableViewController。当我在显示搜索显示控制器的表视图时在 UITableViewController 的表视图上调用 reloadData 时,来自 UITableViewController 的部分视图标题被绘制到搜索显示控制器的视图上。

这是在搜索显示控制器视图顶部显示部分标题视图的快照:

更新:我将代码简化为一个简单的搜索显示控制器和 UITableView。如果在 searchBar 处于活动状态的 tableView 上发生重新加载数据。问题仍然存在。

【问题讨论】:

  • @titaniumdecoy...添加了一张图片。不确定你以前是否见过这个?
  • 尝试阅读如何一起实现它们,你显然错过了一个提示:edumobile.org/iphone/iphone-programming-tutorials/…
  • @Marek ..我使用界面生成器将其减少到最低限度...我只是在搜索控制器处于活动状态后重新加载数据以导致问题
  • 告诉我这个。为什么你有两个不同的表格视图?
  • @legolas。搜索显示控制器保存我的搜索结果。普通表视图包含基于地理位置的结果列表。搜索控制器拥有自己的 tableView 是标准的

标签: iphone objective-c


【解决方案1】:

我希望您知道您需要 两个 UITableViews 才能使搜索栏正常工作。当搜索处于活动状态时,您应该管理和显示搜索结果表,否则是您原来的表。

来自 Apple 的文档:The results are displayed in a table view that’s created by the search display controller.

因此,您不应重新加载原始UITableView,而应确保搜索结果表中的datasource 正确。

UISearchDisplayController 有一个名为searchResultsTableView 的属性,您不必专门用reloadData 重新加载它。而是通过UISearchDisplayDelegate协议中的方法进行更新,比如searchDisplayController:shouldReloadTableForSearchString:

干杯,
萨沙

【讨论】:

  • @sascha,我的另一个 tableView 几乎独立于搜索控制器 tableview。它的重新加载基于网络请求的完成,因此可能在搜索显示控制器处于活动状态时发生。如果您查看屏幕截图,您会注意到搜索控制器委托的 tableview 没有启动……屏幕只是变黑了。所以我认为我的问题实际上是在重新加载下面的 tableview 时搜索控制器处于活动状态。谢谢
【解决方案2】:

我遇到了这个确切的问题。如果你的情况和我一样,原因是 [self.tableView reloadData] 即使 self.tableView 低于 searchResultsTableView 也会重绘 self.tableView 标题。

[self.tableView reloadData] 被调用 1)当我从我的表视图数据源中获取时和 2)在我的 fetchedResultsController 的设置器中。

另外,如果您的 tableView 控制器是 fetchedResultsController 的委托,它会在您的 Core Data 托管文档发生更改时接收更新。这也导致标题被重绘。

解决方案:我在填充搜索结果时删除了 [self.tableView reloadData]。另外,我删除了 tableview 控制器作为 fetchedResultsController 的代表。

【讨论】:

    【解决方案3】:

    使用 NSLog 尝试检查 UITableView 中的剖面视图标题何时准确绘制。 也许你可以弄清楚为什么会这样。然后按照您的想法尝试使用 scrollEnabled=NO。

    【讨论】:

    • 不..即使我从方程中删除滚动启用..当搜索视图处于活动状态时,重新加载时的部分标题视图会加载到搜索视图的顶部。
    【解决方案4】:

    您可以使用简单的 UISearchBar,因为如果您无法查看您的代码,则无法帮助您

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-10
      • 2016-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-13
      相关资源
      最近更新 更多