gpt4 book ai didi

ios - 将自动布局与以编程方式创建的 View 结合使用有哪些优势?

转载 作者:行者123 更新时间:2023-11-28 09:11:32 25 4
gpt4 key购买 nike

Auto Layout Constraints 允许我完美地调整 View 的大小和布局,而无需事先知道它们将在什么屏幕上呈现。当我在 Storyboard 上绘制 UI 时,这相当有效。

让我们继续以编程方式创建 View 。

我的应用程序正在运行,界面已呈现在屏幕上,我拥有所有必要的坐标并已完成大小调整。
我想动态创建一些 View ,例如:

  • 一个 UIImageView,在按下按钮时出现,动画化,然后消失
  • 自定义 UIView 的集合,根据底层数据模型在屏幕上创建和布局(想象这里的一系列事件,按自定义时间轴排列)

在类似的场景下,我还是倾向于使用好的旧框架,例如:

let myView = UIView(frame: CGRectMake(x, y, w, h))

不添加任何NSLayoutConstraint

考虑到增加的复杂性,特别是当您需要为 View 设置动画时,使用约束是否有任何明确的优势?

最佳答案

最重要的方面是您实际计算框架的时间(使用哪种方法),是否需要普遍支持以及是否需要支持各种方向。

在 viewController 中,如果您在 viewDidLoadviewWillAppear:viewWillLayoutSubviews 中打印出您的 self.view 框架>,它可能有不同的值。 viewDidLoad 不计算最后一帧(例如,iPhone 6 plus 的那一帧)。因此,如果您在那里设置 View ,计算将会出错。

但是有了约束,将它们添加到哪里并不重要。您可能需要在 View 更改后调用 layoutIfNeeded,但您不必担心框架是否具有最终值。

对于仅短时间可见的 View ,自动布局可能会因不同的方向而有所不同。通过使用框架,您将必须在方向更改回调中更新临时 View 的框架。

此外,如果您在 Storyboard 中使用自动布局,则对以编程方式创建的 View 使用静态框架可能不会为您提供预期的结果。但是,当然,这取决于您的项目的特殊性。

关于ios - 将自动布局与以编程方式创建的 View 结合使用有哪些优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29172916/

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