我正在尝试在故事板中修复这些约束。我目前有一个容器视图,它具有一些完美的约束和定位。它根据屏幕尺寸等进行调整。它运作得很好。
链接到该容器视图的视图控制器当前设置为Freeform
,宽度为306,高度为315.在该视图控制器内部,我有一个具有以下约束的滚动视图。
所以它应该占用整个视图控制器。在滚动视图的内部,我有很多元素,按钮,文本字段,标签等。例如,我有一个固定在视图顶部的文本字段(顶部空间到Superview 0)。我还将superview的尾随和前导空间设置为0。
如果我将视图控制器从Freeform
更改为Fixed
,我希望滚动视图可以更改大小(它确实如此),我希望它将该文本字段的宽度设置为与滚动视图和视图相同的宽度(它没有)。它保持宽度为306.即使它被设置为尾随和超前视图的前导空间设置为0.。
这会在iPhone 4S等设备中产生问题。我希望此视图的元素在宽度方面缩小以适合该容器视图。但它只是允许水平滚动。
我想允许垂直滚动,因为它是一个表单,并且有很多表单元素等。因此,对于较小的设备,他们应该能够向下滚动以查看所有元素。但我希望元素在宽度方面缩小或调整以适应更小的设备。
关于如何实现这一目标的任何想法?
答案 0 :(得分:1)
假设您的布局与此类似:
较小的淡蓝色ViewController有一个ScrollView固定为零。
左上角标签固定在Leading:0和Top:0
右下方标签固定在尾随:0和底部:0
所有这四个约束都与SuperView有关 - 这意味着ScrollView。
你还需要一个右下角标签的Y位置约束 - 在这种情况下,我从左上角标签得到435“垂直间距”。
此时,一切都按照你现在看到的方式运作。我在故事板中设置了7+ ...如果我在7+上运行它,它完全适合“开放”。但是......如果我在5s运行它,右下标签就在右边,我们得到水平滚动。
要解决这个问题,您需要将另一个 Trailing约束添加到Bottom Right标签,但要使其相对于持有ScrollView的View。
因此,选择了右下角标签后,您应该看到: