如果出现标签栏,则无法调整搜索结果控制器视图底部内容插图

Posted

技术标签:

【中文标题】如果出现标签栏,则无法调整搜索结果控制器视图底部内容插图【英文标题】:Fail to adjust search results controller view bottom content inset if tab bar is presented 【发布时间】:2014-11-24 11:25:14 【问题描述】:

该应用基于 UITabBar。搜索栏嵌入在导航控制器中。虽然 automaticAdjustsScrollViewInsets 属性的值为 YES,但结果控制器的滚动视图的 .bottom contentInset 不尊重标签栏。

带有演示的精简版 UICatalog 示例在这里:SearchResultsIncorrectContentInsetsDemo on GitHub

重现步骤:

    关注搜索字段并执行一些搜索(例如“o”) 按“搜索”按钮隐藏键盘 尝试将结果向上滚动到底部

表格视图内容的底部隐藏在标签栏下方。

【问题讨论】:

有趣,我有一个稍微不同的问题。使用edgesForExtendedLayout = UIRectEdgeAll,当键盘隐藏时底部插入是正确的,并且在显示键盘时太大(= 最后一个单元格下方有空白区域)。 【参考方案1】:

您应该关闭情节提要中“嵌入在导航栏中的搜索栏”控制器中的“扩展边缘”->“底部栏下”选项

【讨论】:

感谢您的建议,但这实际上是我宁愿避免的一种修复,因为我不想失去半透明底栏下部分内容可见性的效果。还有其他想法吗?【参考方案2】:

我也有同样的问题。

“automaticallyAdjustsScrollViewInsets”的问题是结果控制器不知道它嵌入在 UITabBarViewController 中 - 通过检查搜索结果控制器的“tabBarController”属性是否为 nil,您可以看到这是真的。

为了解决这个问题,我在罪魁祸首视图控制器中手动添加了底部内容插图。

这绝不是一个理想的解决方案,但是,因为我没有看到通知控制器它在 UITabBarViewController 中的方法(羞耻“tabBarController”属性是只读的:)),它必须这样做直到对此事的未来启示。

【讨论】:

以上是关于如果出现标签栏,则无法调整搜索结果控制器视图底部内容插图的主要内容,如果未能解决你的问题,请参考以下文章

如何防止子视图重叠标签栏?

导航控制器内的标签栏控制器,或共享导航根视图

通话状态栏更改时查看调整大小[重复]

删除视图控制器底部的灰色条 - iOS

调整容器视图的高度以匹配子视图的高度

无法在标签栏控制器的顶部完全呈现模态视图控制器