iOS 11:UICollectionView:出现时,会发生滚动

swa*_*ner 11 uicollectionview ios11

当我的UIViewController内部出现UICollectionView时,内容会在出现时向上滚动一点.

我实施了scrollViewDidScroll:,我正在记录contentOffset.y:

-20.000000
-20.000000
0.000000
0.000000
Run Code Online (Sandbox Code Playgroud)

这只发生在iOS 11(模拟器和设备)上,而不是iOS 10或iOS 9上.其他人遇到过这种情况吗?

编辑非常讨厌的事情:这只发生在未调用viewDidLoad时,例如,当UIViewController已经存在并再次弹出时,但不是在第一次显示UIViewController时...

vme*_*yer 46

在iOS 11中,contentInset.top可以添加到UIScrollView和子类(UICollectionView,UITableView)中,而状态栏,navigationBar或其他内容则显示在视图层次结构中.

此插件来自新的adjustContentInset属性.(doc:adjustedContentInset)

要删除此额外插入,请将scrollView上的内容插入调整设置为永不:

[self.myScrollView setContentInsetAdjustmentBehavior:UIScrollViewContentInsetAdjustmentNever];

WWDC17视频中的更多信息:在19' 更新iOS 11应用程序

  • 避免这样做.UIKit工程师特别要求不要这样做.参考:https://twitter.com/smileyborg/status/910656113653116928"而是使用additionalSafeAreaInsets来增加safeAreaInsets.或者设置负的contentInset来减少/否定adjustContentInset." https://twitter.com/smileyborg/status/910656175800119296 (2认同)
  • 感谢您更新@LuisAscorbe.当然,您应该将scrollview内容边距调整为safeAreaInsets以使您的布局适应新的iPhone X.但是,有时您希望UIScrollView内容填满整个屏幕. (2认同)