项目里用了IQKeyboardManager来管理键盘弹起落下,当更新IOS11后,调出键盘然后落下有几率让界面变形,如下图:
具体原因不知道,因为看到IOS中废弃了automaticallyAdjustsScrollViewInsets属性,所以猜测是IQKeyboardManager在弹起和落下时对
automaticallyAdjustsScrollViewInsets做的处理不管用了,有一个替代的属性contentInsetAdjustmentBehavior。
UIViewController的automaticallyAdjustsScrollViewInsets
属性---》UIScrollView的 contentInsetAdjustmentBehavior
属性,代码如下:
if (@available(iOS 11.0, *)) {
self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
} else {
// Fallback on earlier versions
}
另外UIScrollViewContentInsetAdjustmentBehavior 有以下几种枚举值:
automatic
和scrollableAxes一样,scrollView会自动计算和适应顶部和底部的内边距并且在scrollView 不可滚动时,也会设置内边距.scrollableAxes
自动计算内边距.never
不计算内边距always
根据safeAreaInsets 计算内边距