UINavigation titleView 错误

Posted

技术标签:

【中文标题】UINavigation titleView 错误【英文标题】:UINavigation titleView bug 【发布时间】:2016-09-21 06:41:46 【问题描述】:

如果我给导航titleView设置了一个搜索栏,比如

navigationController?.navigationBar.topItem?.titleView = self.searchBar

,但我使用自动布局设置它的框架,例如:

self.searchBar.snp_makeConstraints  make in
        make.left.equalTo(leftSpace)
        make.right.equalTo(-leftSpace)
        make.top.equalTo(10)
        make.height.equalTo(44)

,然后如果我推送到另一个视图控制器会导致损坏。

如果我用这种方式设置它的框架:

self.searchBar.frame = CGRectMake(leftSpace, 0, screenSize.width - 2 * leftSpace, 44)

运行良好...

谁能告诉我为什么?谢谢...

【问题讨论】:

【参考方案1】:

TitleView 的布局由导航控制器管理。添加到 titleView 时,您添加到视图中的约束将被忽略。如果您想完全自定义导航栏,我建议您创建自己的视图。

【讨论】:

先谢谢。但是我可以看到标题视图正确显示在导航栏中,如果我推送到另一个视图控制器,那么就会损坏。

以上是关于UINavigation titleView 错误的主要内容,如果未能解决你的问题,请参考以下文章

UINavigationItem

在 UINavigationbar 的标题视图中添加自定义 UIView

呈现页面时出现 UiNavigation 错误

UINavigation 将同一视图控制器推送两次错误

UINavigationBar TitleView 带字幕

iOS 11 - 使用大标题模式时的 UINavigationItem titleView