gpt4 book ai didi

ios - XCode:如何在横向和纵向模式之间更改 View 布局

转载 作者:搜寻专家 更新时间:2023-10-30 22:21:34 26 4
gpt4 key购买 nike

在纵向模式下,我有四个 View 从 View Controller 的顶部到底部相互叠加(见图)。

portrait view

然后我想在设备转换为横向时更改 View 相对于彼此的位置(参见图二)。 landscape view

我希望 View 4 与 View 2 和 3 一起移动,并且它们都位于 View 1 的下方。

一些布局条件:

  • View 1 附加到横向和纵向 View Controller 的顶部。
  • View 4 在纵向模式下附加到 View Controller 的左、右和下边距。
  • View 2、3 和 4 在纵向 View 中水平居中。

实现不同布局的最佳方法是什么?

最优雅的解决方案是在 View Controller 代码中引用约束并在 viewWillTransition 中激活和停用它们吗?或者有没有一种方法可以使用 vary for traits 来实现这一点(我可以想象 View 2、3 和 4 水平居中会使这很难实现,以及在横向模式下为 View 4 添加新的约束)?

最佳答案

我们过去常常设置不同的约束集,并根据方向变化激活/停用它们。但是现在可以使用尺寸等级和“因特征而异”。

例如,我从一个简单的 View 开始,选择一个紧凑的宽度大小类,然后选择“Vary for traits”:

enter image description here

然后我添加适当的约束并点击“Done varying”:

enter image description here

然后我选择一个“常规宽度尺寸类”并重复该过程(“Vary for traits”,添加约束,点击“Done varying”:

enter image description here

然后您将得到一个场景,该场景将具有一组完全不同的约束,这些约束适用于紧凑宽度尺寸类和常规宽度尺寸类。 IE。当我运行应用程序时,如果设备旋转,则会激活新的约束:

enter image description here

有关更多信息,请参阅有关自适应布局的 WWDC 2016 视频:

关于ios - XCode:如何在横向和纵向模式之间更改 View 布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42318186/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com