我的布局看起来像这样。 viewcontroller嵌入在导航控制器中,导航控制器又嵌入在标签栏控制器中,因此视图同时具有顶部和底部栏。
标签和3个按钮有高度限制。灰度视图具有长宽比约束集。
标签和灰色视图嵌入在一个stackview中。 3个红色按钮嵌入在一个stackview中。最终,这两个堆栈视图都被嵌入到单个堆栈视图中。
所有包含堆栈的视图都设置了前,后约束。
当我在具有更大屏幕(如XS)的iPhone中运行它时,没有问题。
但是当我在较小的屏幕(如SE)中运行它时,底部隐藏在选项卡栏的后面。
我需要设置什么约束才能使主堆栈视图适合所有iPhone的屏幕尺寸?
我尝试为低优先级的stackview设置一个底部约束,但这似乎也不起作用。
我认为一个原因是我为标签和按钮设置的高度限制。但是我不确定如何设置高度以动态调整大小。
答案 0 :(得分:0)
问题是因为您没有底部约束,所以宽高比约束会拉伸视图,这会使底部按钮在选项卡栏下方
您需要从主堆栈视图中删除顶部标签和middleView并将约束设置为
1-标签-前导,尾随,顶部和高度´´´高度是可选的
2- middleView-前导,尾随,顶部到标签
3- stackview-前导,尾随,从顶部到中间视图,从底部到视图
根据MiddleView的高度,将根据屏幕的高度,如果您希望它为正方形,则将centerX和AspectRatio设置为1替换前导和尾随