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

时间:2015-04-21 20:41:31

标签: ios xcode swift scrollview

我在主视图中的ScrollView中有一个View

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

Apple医生说

  

默认值为CGPointZero。

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

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

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

3 个答案:

答案 0 :(得分:23)

视图插入可能是一个问题。

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

uncheck the Adjust Scroll View Insets

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

答案 1 :(得分:2)

Swift 4.2 +

scrollView.contentInsetAdjustmentBehavior = .never

答案 2 :(得分:1)

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

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

  

处理滚动视图顶部的导航栏

iOS 7视图当然带有新的外观,滚动视图位于导航栏下方,效果很好。可以手动更改滚动视图的contentInset以覆盖顶部重叠的部分,但手动执行此操作既繁琐又无趣。如果我的ViewController将automaticAdjustsScrollViewInsets设置为YES,我会非常高兴地发现处理它应该是免费的。

这对我来说不起作用,因为事实证明滚动视图必须是ViewController的UIView的第一个子视图。我不得不重新排序我的子视图,然后魔术开始滚动。