最近遇到一个 UINavigationBar 的 titleView 问题。自定义了一个 UIView,将其赋值给 navigationItem.titleView 。但是在 iOS 8 和 iOS 9 上导航栏并不能居中问题。但是 iOS 10 和 iOS 11 是可以正常居中。那么怎么解决呢?
先上代码吧。自定义了一个 titleView,并使用了 SnapKit 进行内部组件的约束处理。
|
|
用 Xcode 的 Capture View Hierarchy 查看下导航栏的 UI 层级。
在 iOS 8/9/10 ,titleView 的位置约束缺少,而 iOS 11,titleView 的会自动添加一个位置约束。
因此,可以模仿 iOS 11 下的 titleView 的约束。给 iOS 8/9/10 的 titleView 添加适当的约束。
|
|
一次无聊的 UI 实验。🤷♀️。