UISearchBar 在 UINavigationBar 后面扩展
Posted
技术标签:
【中文标题】UISearchBar 在 UINavigationBar 后面扩展【英文标题】:UISearchBar extends behind UINavigationBar 【发布时间】:2017-09-14 12:36:27 【问题描述】:为什么这个 UISearchBar 将它的背景延伸到导航栏的后面?它只在我的项目中的一个视图控制器上使用 38 个视图控制器。但是这个视图控制器中的设置与其他所有设置相比并不特别。
我问的原因是因为这会在 ios 11 上造成问题。然后搜索栏不再居中。我已经重新创建了整个故事板,但效果仍然会再次发生。所以我认为这是我在视图控制器中执行的一些代码。但我不知道是什么原因造成的。谢谢。
编辑:根据要求,这里是自动布局约束:
所有常量都是0,当然除了高度。
【问题讨论】:
请显示您在搜索栏和导航栏之间提供了哪些自动布局约束。 给你,谢谢。 能否请您扩展“对齐顶部到:安全区域”的约束 我已经添加了。如您所见 - 没什么特别的。 【参考方案1】:我遇到了同样的问题,我通过将搜索栏放到 UIView 中解决了这个问题,然后在 UIView 上应用了约束。
【讨论】:
不,这不是问题所在。我找到了答案并发布了它。不过谢谢。【参考方案2】:我刚刚发现了问题。这个视图控制器中有一些古老的代码:
extension MyViewController : UINavigationBarDelegate
func position(for bar: UIBarPositioning) -> UIBarPosition
return UIBarPosition.topAttached
删除此代码修复了所有问题。
【讨论】:
谢谢!值得注意的是,这是 iOS 10 和 11 之间的行为变化。以上是关于UISearchBar 在 UINavigationBar 后面扩展的主要内容,如果未能解决你的问题,请参考以下文章
单击 UISearchBar 的取消按钮后,如何使用 UISearchBar 刷新我的 UITableView?