将uiscrollview子视图调整为全屏

时间:2015-03-18 20:48:08

标签: ios xcode swift uiscrollview autolayout

我有一个UIScrollview和一个包含不同对象的视图。 像这样:

View
 UiScrollView
  View -ContentView-
   -Button
   -Label
   -...
   -...

在这个contentView中,我将top,bottom,left和right margin设置为0(当然来自scrollView,它是superView);我也设置了水平和垂直对齐中心;

然后我在contentView中添加了所有视图,并在scrollView中添加了contentSize。

获取scrollview lame最后一个视图的总高度,并获取他的MaxY来设置scrollview的高度。

这很好用,问题是ContentView视图没有更新它的大小,但是它的对象不起作用,他的背景只对屏幕视图可见。

我附上了我的情况图片,看它更容易。

enter image description here

知道如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:1)

这似乎是对UIScrollView中自动布局的常见误解。我希望你先看看这份文件。

https://developer.apple.com/library/ios/technotes/tn2154/_index.html

简单来说,更改UIScrollView的contentSize不会改变contentView的大小。相反,如果你想在那里使用自动布局,那就是contentView的约束决定了UIScrollView的contentSize。

您有两种选择。第一个选项是将contentView的translatesAutoresizingMaskIntoConstraints设置为NO,并在更改UIScrollView的contentSize时更改contentS的框架,其大小与contentSize相同。另一个选项是为contentView添加宽度和高度约束。这将确定UIScrollView的contentSize。