需要帮助更好地了解UIStackView

时间:2016-07-27 15:37:06

标签: ios xcode uistackview

我看过这个tutorial来了解UIStackView,但我仍然遇到了麻烦。 This是我现在正在使用的工具。下半部分(部分由日期选择器覆盖)是我期待实现的目标。

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

  • 月,日,周处于水平堆栈中。
  • 秒,分钟,小时是垂直堆栈。
  • 然后这两个堆栈是垂直堆栈。

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

我不确定如何解决这个问题。

谢谢!

1 个答案:

答案 0 :(得分:0)

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

  • 您的秒,分和小时堆栈视图中有三个水平堆栈视图,每个视图只包含一个“卡片视图”。这些堆栈视图没有做任何事情,因此我建议将其简化为垂直堆栈视图中的三个卡片视图。
  • 您的堆栈视图可能不会固定在您认为的位置。模拟器中的外观表明它没有固定在它位于内部的视图中。或者,该视图可能无法正确固定到顶层视图。
  • 一旦对上面的内容进行了排序,您可能需要查看堆栈视图设置,我怀疑最低级别的垂直和水平堆栈视图都应该设置为平均填充,这可能不是现在的情况
  • 要检查的另一件事是您没有相互冲突的约束。如果你把东西放在已经定义了高度,宽度,宽高比等的堆栈视图中,那么这会干扰堆栈视图的魔力。
  • 最后,如果所有其他方法都失败了,请抛弃所有堆栈视图和约束,并使用尽可能少的每个堆栈视图和约束重建它们。首先堆栈视图,然后是堆栈视图设置,然后仅限于需要它们的约束。

一般来说,我建议不要在界面构建器中使用“iPhone形状”视图控制器,它们往往会隐藏在运行时或不同大小的设备上发生的问题,并给出错误的安全感。通用的方形视图是更好的选择。最后,不要放弃,每个设法掌握堆栈视图的人都会看到这样的屏幕,并在某种程度上绝望地握住他们的头!