ios - 在视图中适合包含更多堆栈视图的堆栈视图
问题描述
我有一个看起来像这样的布局。viewcontroller 嵌入在导航控制器中,而导航控制器又嵌入在标签栏控制器中,因此视图同时具有顶部和底部栏。
标签和 3 个按钮有高度限制。并且灰色视图具有纵横比约束集。
标签和灰色视图嵌入在一个堆栈视图中。并且 3 个红色按钮嵌入在一个堆栈视图中。最后,stackview 和嵌入在单个 stackview 中。
包罗万象的堆栈视图具有前导、顶部和尾随约束集。
当我在像 XS 这样具有更大屏幕的 iPhone 上运行它时,没有问题。
但是当我在 SE 等较小的屏幕上运行它时,底部会隐藏在标签栏后面。
为了使主堆栈视图适合所有 iPhone 的屏幕尺寸,我需要设置什么约束?
我尝试为堆栈视图设置一个低优先级的底部约束,但这似乎也不起作用。
我认为一个原因是我为标签和按钮设置的高度限制。但我不确定如何将高度设置为动态调整大小。
解决方案
问题是因为您没有底部约束,因此方面约束会拉伸视图,这将使底部按钮位于标签栏下方
您需要从主堆栈视图中删除顶部标签和中间视图并将约束设置为
1-标签-前导,尾随,顶部和高度''''高度是可选的
2- middleView - 前导,尾随,顶部到标签
3- stackview - 前导,尾随,顶部到中间视图,底部到视图
根据上面 middleView 的高度将根据屏幕的高度,如果你希望它是正方形的,那么将前导和尾随替换为 centerX 和 aspectRatio 为 1
推荐阅读
- jquery - 如果下拉列表中所选选项的类等于一个值,则在页面加载时将类添加到 div
- automation - Datadog Terraform (IaC) - 多个组织的目录布局策略
- kubernetes - Minikube 挂在创建 hyperv 虚拟机上
- python - 由于库,Python 代码无法在 IDE 之外工作
- java - 无法解析符号 activity_sign_up
- javascript - 强制停止函数执行
- java - Java FixedThreadPool 与每个线程的资源?
- c++ - 转换运算符的离线定义的编译器差异
- javascript - 如何检查工作表单元格是否包含错误?
- typescript - 在 TypeScript 中编写求和函数