iOS自动布局-不可能的情况?
我需要创建一个具有3个视图的启动屏幕故事板。中间视图的比例必须为4:3,顶视图必须占据剩余空间的30%,下视图必须占据剩余空间 例如,当视图为375 x 667 中间视图:375 x 4/3=500 顶视图(667-500)*30%=50 下视图:667-500-50=117 我尝试了我能想到的一切(包括使用UIStackView),但找不到一种方法使其工作 可能吗?正确的方法是什么 非常感谢iOS自动布局-不可能的情况?,ios,autolayout,Ios,Autolayout,我需要创建一个具有3个视图的启动屏幕故事板。中间视图的比例必须为4:3,顶视图必须占据剩余空间的30%,下视图必须占据剩余空间 例如,当视图为375 x 667 中间视图:375 x 4/3=500 顶视图(667-500)*30%=50 下视图:667-500-50=117 我尝试了我能想到的一切(包括使用UIStackView),但找不到一种方法使其工作 可能吗?正确的方法是什么 非常感谢 正如您正确地说的那样,使用autolayout很难做到这一点,因为您的第一个视图应该占据30%的空间,
正如您正确地说的那样,使用autolayout很难做到这一点,因为您的第一个视图应该占据30%的空间,而不是一块连续的空间。你可以通过添加两个不可见的视图来测量“剩余空间”,一个视图的高度可以占30%,但这不值得费心。只需在
布局子视图
或类似视图中直接在代码中实现您的需求。您可以通过使用具有适当乘数的等高约束来存档此需求。以下是您案例中的步骤:
- 根据屏幕大小添加所有3个具有所需大小的视图
- 将第一个视图的等视图高度约束设置为超级视图,如下所示。 (倍增器是根据您正在处理尺寸为375 x 667的视图来设置的。请根据需要进行更改。)
- 根据需要将顶部、左侧和右侧约束设置为零
- 将第二视图的等视图高度约束设置为超级视图,如下所示李>
- 向第二视图和底部视图添加其他缺少的约束
完成了。为了获得剩余空间的高度,我在顶部添加了一个隐藏视图,该视图的比例为4:3,在下面添加了另一个隐藏视图,该视图占据了剩余空间。然后,我可以使用相对于第二个隐藏视图的高度约束来布局视图 不幸的是,这是一个启动屏幕故事板,所以我不能编码它。看来我需要试试看不见的东西。谢谢不幸的是,俯视图应该是剩余高度的30%(总高度-4:3视图高度)。不是总高度的30%。感谢