1.导航栏高度的变化
iOS11之前导航栏默认高度为64pt(这里高度指statusBar + NavigationBar),iOS11之后如果设置了prefersLargeTitles = YES则为96pt,默认情况下还是64pt,但在iPhoneX上由于刘海的出现statusBar由以前的20pt变成了44pt,所以iPhoneX上高度变为88pt,如果项目里隐藏了导航栏加了自定义按钮之类的,这里需要注意适配一下。
2. 在iOS 11中titleView的宽度设置了没有效果,也没有拉伸展示,缩成一坨了。项目中有好多地方用到了titleView这个属性,怎么办?
打开Xcode 查看视图层级功能,发现在iOS 11 中Apple 改变了UINavigationBar的视图层级,titleView不是加到NavigationBar上了,而是加到UINavigationBarContentView上
那么怎么解决这个问题呢?
在你自定义的titleView中重写intrinsicContentSize 的Get 方法,如下:
- (CGSize)intrinsicContentSize
{
return UILayoutFittingExpandedSize;
}
然后再次运行项目,你会发现和之前的效果一样了。
3. 在iOS11设备上运行出现tableview莫名奇妙的往上或则往下偏移20pt或者64pt了。
原因是iOS 11中Controller的automaticallyAdjustsScrollViewInsets属性被废弃了,当tableView超出安全区域时系统自动调整了tableView的safeAreaInsets值&#