如何使滚动视图同时滚动*和*以满足不同尺寸设备的约束

时间:2019-05-15 17:32:19

标签: ios xcode

我有一个如下的视图控制器,下面的布局显示在iPhone XS上。有了这组约束,我就可以在情节提要中的不同设备视图之间滑动,并且一切都会进行调整,对于约束没有警告/错误。

enter image description here

但是,问题是在iPhone 8和SE上,元素的大小太大而无法容纳在屏幕上,并且文本视图被压缩,并且并非所有文本都是可见的(要求将所有文本都无需使文本本身可滚动即可查看,因此这就是我将所有内容置于滚动视图的原因。 但是问题在于,在iPhone 8 / SE上,滚动视图实际上并未滚动。 经过研究,从上一个问题开始,解决方案是将视图的优先级设置为height = height(滚动视图及其子级之间),默认值从1000到250。

这确实解决了滚动视图无法滚动的问题,并且iPhone 8和SE的最终结果符合预期-并非所有文本和按钮在屏幕上都可见,但用户可以向下滚动以查看它们。 在iPhone 8+和XS上也可以。但是,如果我在情节提要中翻转到XR或XS Max视图,我现在会遇到约束错误-说“滚动视图:需要限制Y位置或高度。

enter image description here

我已经尝试了很多事情,但是当使滚动视图实际在较小的屏幕设备上滚动时,我无法同时消除所有约束错误。

多年来,这一直使我发疯,请对这里缺少/不正确的任何建议表示感谢。

1 个答案:

答案 0 :(得分:0)

如果您对“视图”设置的内容有适当的限制,则完全不需要为其设置高度限制。

这就是您所需要的:

enter image description here

注意:为您的元素赋予有意义的名称以使您容易准确地知道哪些约束属于哪个“视图”可能非常有帮助。