Xamarin iOS:滚动视图中的自动布局?

Xamarin iOS: Auto Layout within scroll view?

我的情节提要板上有一个 scrollView,我在上面添加了顶部、左侧、右侧、底部约束,以便它根据不同的屏幕尺寸自动调整大小。问题是,如果我在此滚动视图中添加图像视图或任何其他内容,并在此图像视图上放置约束以与滚动视图边界的顶部、左侧、右侧和底部保持一定距离。它只是行不通。我想根据目标设备的屏幕大小调整所有内容的大小。我怎么能这样做?

浅灰色区域是我的滚动视图,灰色区域是普通视图,最里面的元素是图像视图。

解释起来有点复杂

我们知道,在autolayout开始工作之前,我们应该对它们设置约束,根据这些约束,编译器可以确定控件的Frame(位置和大小)。

但是,UIScrollViewUIView 有点不同。一般来说,我们只需要设置 left,right,top,bottom 即可,但是在 UIScrollView 中,它有一个名为 contentSize 的定义,它决定了 scrollview 的实际大小。所以我们上面设置的约束是不够的。

因此,作为解决方法,我们在滚动视图中添加一个 容器视图 以确定内容大小。

1。对scrollview的约束(下图绿色区域)

2。对容器视图的约束。(下图红色区域)

注意:我们设置了额外的宽度(等于scrollview)来表示宽度是固定的,意思是我们不能水平滚动但允许垂直方向。

3。内部视图约束(下图蓝色区域)

测试结果:

iPhone5S

iPad空气2

我在努力解决这个问题时遇到了这个问题。接受的答案是非常正确的,即使它遗漏了一些细节。

这里我已经对所有的细节做了完整的回答,

我把它写在这里是因为它可能对以后的人有帮助。