使用autolayout时如何在UIScrollView中水平居中UIView?

时间:2016-06-14 22:12:42

标签: ios swift uiscrollview autolayout

我有一个放在scrollView中的UIView。 UIView有四个我在故事板中设置的约束:

  
      
  • Equal Width to scrollView(w / a 0.98 multiplier)
  •   
  • 相等高度滚动视图(带0.98乘数)
  •   
  • 在scrollView内部水平居中(w / constant = 0)
  •   
  • 在scrollView(w / constant = 0)
  • 内垂直居中   

scrollView有定期尾随,前导,顶部和&所有常量的底部约束= 0。

我还为scrollView设置了以下属性。

self.scrollView.contentSize.width = self.scrollView.frame.size.width + 30

我怎样才能将UIView置于我的scrollView中心?

注意:我可以访问self.horizo​​ntalCenterConstraint.constant,它可以控制UIView在scrollView中的位置。我试着做了

self.horizontalCenterConstraint.constant = (self.scrollView.contentSize.width / 2)

但实际上并没有将UIView置于scrollView中。

1 个答案:

答案 0 :(得分:1)

我建议将containerView添加为scrollView的根子视图(前导,尾随,顶部,底部= 0,并将相等的宽度和高度作为scrollView),然后添加所需的视图。

  • 滚动视图
    • containerView
      • YOUR_VIEW(与您已有的约束相同)

现在,scrollView可以计算contentSize,因为有了containerView的约束,我看到你添加了self.scrollView.contentSize.width = self.scrollView.frame.size.width + 30所以只需将containerView的宽度设置得比scrollView宽,它就会水平滚动....