容器覆盖 UITableView - iOS 7 中的 SearchBar / SearchDisplayController

Posted

技术标签:

【中文标题】容器覆盖 UITableView - iOS 7 中的 SearchBar / SearchDisplayController【英文标题】:SearchBar / SearchDisplayController in Container overlays UITableView - iOS 7 【发布时间】:2013-09-24 11:45:31 【问题描述】:

这是我关于堆栈溢出的第一个问题。我希望我能得到一些帮助:)

我目前正在将我的应用程序更新到 ios 7,并且在 ContainerView 中使用 SearchDisplayController 时遇到了一些问题。实际上它看起来像下面这样:

http://cl.ly/image/2Q1d0D0O1K0u

带有搜索栏的整个内容作为 ChildViewController 放置在之前的 ViewController 之上。它是完全自己的 TableViewController。现在,当我点击搜索栏时,它看起来很奇怪,有一个奇怪的动画:

http://cl.ly/image/1W2m3c1t3340

即使我尝试在情节提要中完全构建它(添加 TableViewController,添加带有 TableViewController 的容器),我也会遇到完全相同的行为,而无需编写任何代码行。我现在在这个问题上搞砸了两天,我没有任何线索。可能这是iOS 7的错误?使用 iOS 6 可以完美运行。

【问题讨论】:

我遇到了同样的问题。在我的例子中,搜索栏被放置在 UITableView 中,就在分段控件的下方。似乎假设 tableview 就在导航栏的正下方,所以它在聚焦时会动画到错误的位置,然后再捕捉到正确的位置。 Thomas Moeskops 看看我的回答。如果它也对你有帮助,请告诉我。 你有一个项目可以证明这一点吗? 【参考方案1】:

使用以下代码让它工作:

if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) 
    self.edgesForExtendedLayout = UIRectEdgeNone;

奇怪的是,当搜索栏与状态栏重叠时,我读了很多次。不知道为什么我不早点尝试。

【讨论】:

进入 ViewController 的viewDidLoad:

以上是关于容器覆盖 UITableView - iOS 7 中的 SearchBar / SearchDisplayController的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 7 上压缩的 UITableView sectionIndexTitles

覆盖不滚动 UITableView - iOS

(iPhone/iOS) UISearchBar Scope Buttons 覆盖 UITableView 的第一行

iOS UITableView 在设置 TableHeaderView 后以编程方式覆盖自动布局约束

需要在 iOS 中使用 UIPanGestureRecognizer 将 UIImageView 的移动限制在 UITableView 覆盖的区域

iOS UITableView:更改表格的背景颜色会覆盖单元格的背景颜色