我有一个UIScrollview和一个包含不同对象的视图。 像这样:
View
UiScrollView
View -ContentView-
-Button
-Label
-...
-...
在这个contentView中,我将top,bottom,left和right margin设置为0(当然来自scrollView,它是superView);我也设置了水平和垂直对齐中心;
然后我在contentView中添加了所有视图,并在scrollView中添加了contentSize。
获取scrollview lame最后一个视图的总高度,并获取他的MaxY来设置scrollview的高度。
这很好用,问题是ContentView视图没有更新它的大小,但是它的对象不起作用,他的背景只对屏幕视图可见。
我附上了我的情况图片,看它更容易。
知道如何解决这个问题?
谢谢!
答案 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。