【问题标题】:How Can I have multiple widths and heights of subviews in a UIStackView如何在 UIStackView 中有多个宽度和高度的子视图
【发布时间】:2016-03-07 22:18:35
【问题描述】:

例如,我想在堆栈视图中添加 3 个按钮。

Button1 为 200 * 200 (1)

Button2 为 150 * 150 (0.75)

Button3 为 100 * 100 (0.5)

如何在界面生成器中完成此操作?

【问题讨论】:

  • 对按钮设置约束并将stackview分布设置为按比例填充。
  • 如果我尝试在堆栈视图中向子视图添加约束,我会收到无数冲突的约束错误
  • 首先为您的堆栈视图设置约束,然后在按钮上设置宽度和高度约束。当我尝试时它正在工作。

标签: ios interface-builder uistackview


【解决方案1】:

您可以使用 stackview 在情节提要中执行此操作

  1. 添加带有对齐中心分布填充的stackview。
  2. stackview 的约束是水平居中和垂直居中。
  3. 现在添加三个按钮。
  4. button1 上的约束是 height 和 width = 200
  5. button2 上的约束是 height 和 width = 150
  6. button3 上的约束是 height 和 width = 100

设置如图:

由于对齐属性,您遇到冲突,在您的情况下它会填充。 make 是中心,它已经完成了。

我们还可以在按钮之间添加间距。如果我们设置 Distribution Equal Spacing 并将高度约束添加到 stackview 的高度大于按钮的高度。

这是垂直堆栈视图。您可以使用水平堆栈视图进行相同的测试。

希望它对你有用。

【讨论】:

  • 像魅力一样工作。同样的技术也适用于包含大小不等的元素的水平堆栈视图。
  • 对齐不一定要居中,可以是前导也可以是尾随等
  • 令人惊讶地不适用于UIView's。我已经为UIView 尝试了相同的方法,即使我给出了相同的约束值。当我将它们更改为UIButton 时想到。它正在工作。有人可以建议如何为UIView 工作。 Alignment = center 也无济于事。
  • 是的,昨天在您发表评论之前就开始工作了;-P。无论如何谢谢...
  • 不适用于 UILabel。我想为标签使用动态宽度。我在水平轴上有3个标签,想将左右标签的宽度设置为
【解决方案2】:

对于那些正在为 UIViewHere it is, 寻找解决方案的人

UIStackView 确保其排列的子视图在您的布局增长和缩小时彼此保持相同的比例 .但是,与其他分发选项不同,按比例查看的视图必须具有intrinsic content size

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 2019-10-10
    • 2011-12-08
    • 1970-01-01
    相关资源
    最近更新 更多