需要帮助更好地理解UIStackView



我看了本教程以了解UIStackView,但我仍然遇到了问题。这就是我现在正在处理的问题。下半部分(部分由日期选择器覆盖)是我想要实现的。

一行有三个水平视图,下面有三个垂直视图。正如你从我的stackview层次结构中看到的,白色背景视图和橙色背景视图在垂直堆栈中。我没有用白色背景来显示正在发生的事情的对比。

  • 几个月、几天、几周是水平排列的
  • 秒、分钟、小时是垂直排列的
  • 然后这两个堆栈在一个垂直堆栈中

垂直堆栈在每个方向上固定20个像素。

我不知道如何解决这个问题。

谢谢!

如果不能看到每个约束和堆栈视图设置,很难给你一个明确的答案,但这里有一些指针可能会让你有所收获:

  • 秒、分钟和小时堆栈视图中有三个水平堆栈视图,每个视图只包含一个"卡片视图"。这些堆栈视图没有任何作用,所以我建议将其简化为垂直堆栈视图中的三个卡视图
  • 你的堆栈视图很可能不会被固定到你认为的样子。模拟器中的外观表明它没有被固定到它所在的视图上。或者,该视图可能未正确固定到顶层视图
  • 一旦对以上内容进行了排序,您可能需要查看堆栈视图设置,我怀疑您在最低级别的垂直和水平堆栈视图都应该设置为相等填充,但目前可能不是这样
  • 另一件需要检查的事情是,您没有相互冲突的约束。如果你把东西放在已经定义了高度、宽度、纵横比等的堆栈视图中,那么这可能会干扰堆栈视图发挥其魔力
  • 最后,如果所有其他操作都失败了,请丢弃所有堆栈视图和约束,并使用尽可能少的每个视图和约束重新构建它们。首先是堆栈视图,然后是堆栈视图设置,然后是仅在需要的地方进行约束

一般来说,我建议不要在界面构建器中使用"iPhone形状"的视图控制器,它们往往会隐藏运行时或不同大小设备上发生的问题,并给人一种虚假的安全感。普通的方形视图是更好的选择。最后,不要放弃,每个成功掌握堆叠视图的人都曾看着这样的屏幕,并在某个时候绝望地双手抱着头!

最新更新