[iOS11] contentInsetAdjustmentBehavior 问题, push back时, 界面会上下移动.

时间:2023-01-20 00:13:00

https://*.com/questions/45573829/weird-uitableview-behaviour-in-ios11-cells-scroll-up-with-navigation-push-anima

在你的tablview/controller基类设置

 if (@available(ios 11.0,*)) {
self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}

不要用  `[UIScrollView appearance]` 的方法, 不生效.

PS: 搜索这个问题的话, 国内的多个文章都是抄的同一篇, 且是错的.

如下是错的.

  1. 目前发现所有的Scrollview 及其子类都需要设置 contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever ,
  2. 工程中大量使用列表的同学不要慌,不要忙,因为UIView及其子类都遵循UIAppearance协议,我们可以进行全局配置:
  3. // AppDelegate 进行全局设置
  4. if (@available(iOS 11.0, *)){
  5. [[UIScrollView appearance] setContentInsetAdjustmentBehavior:UIScrollViewContentInsetAdjustmentNever];
  6. }
  7. 这样一来使用UITableview 、UICollectionView、UIScrollview的时候就不需要再单独设置该属性了。