可以先看一下这篇文章edgesForExtendedLayout、extendedLayoutIncludesOpaqueBars、automaticallyAdjustsScrollViewInsets属性详解
iOS11中已经弃用automaticallyAdjustsScrollViewInsets
查阅发现 iOS11弃用了automaticallyAdjustsScrollViewInsets属性,新增contentInsetAdjustmentBehavior来替代它
@property(nonatomic,assign) BOOL automaticallyAdjustsScrollViewInsets API_DEPRECATED_WITH_REPLACEMENT("Use UIScrollView's contentInsetAdjustmentBehavior instead", ios(7.0,11.0),tvos(7.0,11.0)); // Defaults to YES
- 滚动条高度跳动、上下拉刷新问题:
self.tableView.estimatedRowHeight = 0;
self.tableView.estimatedSectionHeaderHeight = 0;
self.tableView.estimatedSectionFooterHeight = 0;
- 列表/页面偏移
本来是这样的
if (@available(iOS 11.0, *)){
_tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
目前发现所有的Scrollview 及其子类都需要设置 contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever ,工程中大量使用列表的同学不要慌,不要忙,因为UIView及其子类都遵循UIAppearance协议,我们可以进行全局配置:
// AppDelegate 进行全局设置
if (@available(iOS 11.0, *)){
[[UIScrollView appearance] setContentInsetAdjustmentBehavior:UIScrollViewContentInsetAdjustmentNever];
}
这样一来使用UITableview 、UICollectionView、UIScrollview的时候就不需要再单独设置该属性了。
参考文档:
10分钟适配 iOS 11 & iPhone X
/***
【链接】10分钟适配iOS11&iPhoneX
http://www.cocoachina.com/ios/20170925/20642.html
1.http://www.cocoachina.com/ios/20170915/20580.html 简书App适配iOS 11
2.http://www.jianshu.com/p/efbc8619d56b iOS 11 安全区域适配总结
3.http://www.cocoachina.com/ios/20170802/20101.html 适配iOS11 - UITableview UICollectionView MJRefresh下拉刷新错乱
4.http://www.cocoachina.com/ios/20170917/20590.html iPhone X 和 iOS11的简单适配
5.http://www.jianshu.com/p/352f101d6df1 App界面适配iOS11
https://github.com/squarefrog/UIDeviceIdentifier
***/