iOS自动布局-不可能的情况?

问题描述 投票:0回答:3

我需要创建一个具有3个视图的启动屏幕情节提要。中视图必须具有4:3的比例,顶视图必须占据剩余空间的30%,而下视图则必须占据其余空间。

例如,当视图为375 x 667 ...

中间视图:375 x 4/3 = 500

顶视图(667-500)* 30%= 50

下视图:667-500-50 = 117

我尝试了我能想到的一切(包括使用UIStackView,但是找不到使其工作的方法。

有可能吗?什么是正确的方法?

非常感谢!

enter image description here

ios autolayout
3个回答
0
投票

正如您正确地说的那样,使用自动布局很难做到这一点,因为您的第一个视图应该占据30%的空间不是连续的空间。您可以通过添加两个不可见的视图来做到这一点,以单个视图的高度来衡量“剩余空间”,您可以占据其中的30%,但这并不值得麻烦。只需直接在layoutSubviews或类似代码中实现您的要求即可。


0
投票

有可能,您可以通过将等高限制与适当的乘数一起使用来存档。以下是您的情况下的步骤:

  • 根据屏幕大小添加所有3个具有所需大小的视图。
  • 为第一视图到下面的视图设置相等的视图最高约束。(乘数的设置是考虑到您正在处理的尺寸为375 x667。请根据需要进行更改。)

enter image description here

  • 根据需要将顶部,左侧和右侧约束设置为零。
  • 将第二视图的相等视图上限约束设置为波纹管超级视图。

enter image description here

  • 将其他缺少的约束添加到第二视图和底视图。

您完成了。


0
投票

为了获得剩余空间的高度,我在顶部添加了一个隐藏视图,比例为4:3,在下面添加了一个隐藏视图,该视图占据了其余空间。然后我使用相对于第二个隐藏视图的高度限制来布局视图。

© www.soinside.com 2019 - 2024. All rights reserved.