自动布局视图在较小的设备上重叠

autolayout view gets overlapped on smaller devices

基本上我有一个高度为 x 的视图 和其他 4 个具有相同高度 y 的视图所有这 5 个视图都是垂直的一个接一个 10 px space

所有这些视图都有一些依赖于它们的子视图。

对于这种情况,stackview 是理想的,但它支持从 iOS 9 不幸的是我必须从 iOS 6

开始支持

所以基本上我用前导、尾随、顶部、底部和高度约束修复了所有视图...

它在 iPhone 7 秒内运行良好...但在 iphone 4 秒内视图相互重叠

在iphone se views非常拥挤..

我一直认为高度会根据屏幕尺寸变化 iPHone 4 秒,但那没有发生

我该如何解决这个问题?

修复了所有具有前导、尾随、顶部、底部和等高约束的视图,而不仅仅是高度(不为任何视图提供固定高度)

有两种方法可以解决您面临的问题。

第一个:

您可以使用比例高度限制,而不是为您的任何 UIView 提供固定高度。 Select 你的 UIView 控制 + 从你的 UIView 拖到主视图。 Select 等高约束。现在,双击高度约束并将乘数设置为 0.15 或您认为合适的任何值。这将确保由此创建的视图始终是整个视图高度的 0.15 倍。现在,您可以按照相同的步骤创建与此视图成比例的其他视图或与父视图成比例的视图。

第二个: (对于项目,我更喜欢这种方法,因为有时您需要创建表单,上述方法可能仍会将元素推出屏幕)。

这将使用 UIScrollView。在主视图中添加 UIScrollView 并添加 leadingtrailingtopbottom 对您的 superview 的约束。给这个 UIScrollView 添加一个 UIView 并给它一个 leading, trailing, topbottom 也是如此。另外给它一个 equal height and width constraints to the superview of the UIScrollView with a low priority of like 250. 现在添加UIView 中的所有元素,无论你看起来是否合适。有了固定的高度,成比例的高度随随便便 运行 就可以了。但是请确保为最底部的视图添加 >= 的最小值。

如果内容离开屏幕,屏幕将自动变为可滚动,否则根本无法滚动。