ios UIScrollView 有一个错误的默认 contentOffset - swift

ios UIScrollView have a bad default contentOffset - swift

我在主视图中的滚动视图中有一个视图

问题是我的 scrollView 有一个错误的默认 contentOffset。 他的值在纵向是(0, -64)

Apple 文档说

The default value is CGPointZero.

我将此代码放在我的控制器上以临时处理它:

dispatch_async(dispatch_get_main_queue(), {
  self.scrollView.setContentOffset(CGPointZero, animated:false)
})

为什么我的 contentOffset 没有好的默认值?

这可能是视图插图的问题。

在您的 XIB/Storyboard 视图控制器上,确保 取消选中 调整滚动视图插入

或在您的代码中添加 self.automaticallyAdjustsScrollViewInsets = false

我在这个网站上找到了解释:

http://www.codelord.net/2013/10/18/adapting-scroll-views-to-ios-7/

Handling navigation bar on top of our scroll view

iOS 7 视图当然带有新外观,其中滚动视图位于导航栏下方以获得不错的效果。可以手动更改滚动视图的 contentInset 以覆盖顶部重叠的部分,但手动这样做既乏味又不好玩。如果我的 ViewController 将 automaticallyAdjustsScrollViewInsets 设置为 YES,我很高兴地发现处理它应该是免费的。

这对我来说不是开箱即用的,因为事实证明,滚动视图必须是 ViewController 的 UIView 的第一个子视图才能发生魔法。我不得不重新排序我的子视图,然后魔法开始滚动。

Swift 4.2+

scrollView.contentInsetAdjustmentBehavior = .never