【问题标题】:How to make grow UIViews proportionally如何使 UIViews 按比例增长
【发布时间】:2017-02-22 19:00:17
【问题描述】:

我在下面有类似的观点:

Views stack

当缩小黄色视图高度时,如何使第一个和最后一个视图的高度按比例增大?我可以通过设置内容拥抱优先级和内容压缩来做到这一点吗?

【问题讨论】:

  • 也许this 对你有帮助?
  • 不完全是。我不想让这个视图具有相同的高度。我想增加两种视图,而这个黄色的视图越来越小。我只能在只有一个视图在增长时,当这个黄色的视图越来越小时,才能创造情况。但我想,例如,将黄色视图留下的空间分成两部分,并将这个值添加到第一个和最后一个视图的高度。
  • 我不明白您的问题:在您的示例中,您有 4 个视图。从上到下:紫罗兰色、标签、黄色和纽扣。 “两种观点”是什么意思?哪个“一个视图在增长,当这个黄色的视图越来越小”?什么是“第一个和最后一个视图”?
  • 第一个视图是紫色,最后一个视图是按钮。当黄色视图变小时,我希望紫罗兰色和按钮都变大。现在我处于一个点,如果黄色视图变小,只有按钮变大。那是我的问题。
  • 所以我假设标签的高度应该保持不变。您是在 Interface Builder 中还是在代码中分配布局约束?

标签: ios uiview autolayout


【解决方案1】:

既然我显然理解了你的问题,我建议如下:

  • 必须将紫罗兰色视图的顶部设置为与超级视图的顶部相同。
  • 紫色视图的高度仍未定义。
  • 紫色视图的底部必须设置为与标签的顶部相同。
  • 标签具有固定高度。
  • 标签的底部必须与黄色视图的顶部相同。
  • 黄色视图最初具有固定高度。
  • 黄色视图的底部必须设置为与按钮的顶部相同。
  • 按钮的高度仍未定义。
  • 按钮的底部必须设置为与超级视图的底部相同。

这使得紫色视图的高度和按钮未定义。但是您的要求是它们的高度成比例。
这可以通过首先将它们设置为彼此相等来实现。然后双击约束并更改乘数,例如将紫色视图的乘数调大,按钮的乘数变小。
然后你有一个完整的垂直约束链,如果你将高度 0 分配给黄色视图,自动布局应该可以正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-04
    • 1970-01-01
    • 1970-01-01
    • 2011-03-29
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多