UISearchDisplayController 结果表重叠 UISearchBar

Posted

技术标签:

【中文标题】UISearchDisplayController 结果表重叠 UISearchBar【英文标题】:UISearchDisplayController Results Table Overlapping UISearchBar 【发布时间】:2014-01-12 02:55:39 【问题描述】:

我的UISearchDisplayController 有一个奇怪的问题。当搜索显示激活背景渐变视图的框架并且tableview 错误地与UISearchBar 重叠时。结果tableview 似乎没有考虑UIStatusBar 的偏移量。

ViewController 正在使用auto layout。由于应用程序不使用任何不透明条,因此视图控制器不会扩展其任何边缘。

 Extend edges under top bars = NO, 
 under bottom bars = NO, and
 under opaque bars = NO.

这是初始布局:

搜索显示激活时会发生以下情况:

最后,这是搜索的结果:

【问题讨论】:

fadingView,你把它作为子视图带到 tableview 上,或者你把它呈现在 UITableView 上? UISearchDisplayController 会自动处理这个问题。我没有以任何特定方式配置它的实际演示。我只是有用于在我的视图控制器中填充表的委托/数据源方法。 当我使用 presentViewController 弹出邮箱时,我只在 ios7 中使用过这个。它必须显示在窗口上,我在分离的视图上使用它。 ***.com/questions/18925900/…的可能重复 不,我已经审查了这个问题。他有相反的问题。他的搜索结果显示在正确的位置,但他的搜索栏在状态栏下方呈现不正确。 【参考方案1】:

我解决了自己的问题。一个惨痛的教训。经过几个小时的思考“这真的不应该这么难。”我意识到我的 UISearchDisplayController 实例没有正确链接到其父视图控制器的 API 提供的属性。如果您使用的是 UIStoryBoards / Interface Builder,请务必单击您的 ViewController 并在检查器中查看其提供的插座。如果你看到这个:

然后出了点问题,你会像我一样遇到问题。您要做的是单击该空圆圈并拖动到您的搜索显示控制器实例。如果事情连接正确,您应该会看到:

我愚蠢地没有注意这一点,并创建了自己的 IBOutlet 来引用 Search Display 控制器。这导致 IB 取消了 API 提供的出口,因为 UIViewController 只能支持一个搜索显示控制器。如果您需要我澄清任何事情,请告诉我。

【讨论】:

以上是关于UISearchDisplayController 结果表重叠 UISearchBar的主要内容,如果未能解决你的问题,请参考以下文章

为啥 UISearchDisplayController 有时有效,有时无效?

iOS UISearchDisplayController学习笔记

在 UISearchDisplayController 上遇到僵尸问题

修复 UITableView 顶部的 UISearchdisplaycontroller 搜索栏

iphone隐藏UISearchDisplayController结果?

在 UISearchDisplayController 中设置 UISearchBar 的边框颜色