我的故事板上有一个scrollView,我在其上添加了top,left,right,bottom约束,以便根据不同的屏幕大小自动调整大小。问题是,如果我在此滚动视图中添加图像视图或任何其他内容,并在此图像视图上放置约束以保持与滚动视图边界的顶部,左侧,右侧和底部之间的一些距离。它只是不起作用。我想根据目标设备的屏幕大小调整所有内容的大小。我怎么能这样做?
浅灰色区域是我的滚动视图,灰色区域是平面视图,最内层元素是imageview。
答案 0 :(得分:1)
解释起来有点复杂。
众所周知,在autolayout
开始工作之前,我们应该对它们设置约束,根据这些约束条件,编译器可以确定控件上的Frame
(位置和大小)。
但是,UIScrollView
与UIView
略有不同。一般来说,我们只需要设置left,right,top,bottom
,但在UIScrollView
中,它有一个名为 contentSize 的定义,它决定了scrollview的实际大小。所以我们上面设定的限制是不够的。
因此,作为解决方法,我们在scrollview中添加容器视图以确定contentSize。
注意:我们设置额外的宽度(等于scrollview)以指示宽度是固定的,意味着我们不能水平滚动但允许垂直方向。
答案 1 :(得分:0)
在我遇到这个问题时,我遇到了这个问题。接受的答案是完全正确的,即使它遗漏了一些细节。
在这里,我已经完整地回答了所有细节,
https://stackoverflow.com/a/49096334/3765617
我在这里写这篇文章是因为它可能会对将来有所帮助。