2

我目前正在尝试在 Xcode 中掌握 Auto-layout 的窍门,并且通过它,我发现了一些问题。

现在,我没有 100% 掌握自动布局的确切工作原理,所以当我学习它可能会变得容易,但我认为这很难说实话。我通常在制作游戏,因此,我以编程方式在屏幕上添加了很多视图。现在,当我这样做时,自动布局似乎把一切都搞砸了,所以我必须不断确保每一个自动布局功能都恰到好处,而且有很多!

那么,如果你不想支持其他方向,真的需要自动布局吗?我的意思是,如果我正在为 iPad 制作游戏并且只使用横向模式,我有什么理由使用自动布局吗?

提前感谢

4

2 回答 2

2

几个想法:

  1. 自动布局不是强制性的。

  2. 但是自动布局提供了一种机制来处理视图改变大小和/或位置的情况:

    • 正如您所指出的,改变方向;

    • 支持不同的屏幕尺寸(例如 iPhone 3.5" 屏幕 vs 4.0" 屏幕);

    • 控制其大小根据内容而变化(例如,UILabel其宽度扩展以适合text或 其lineCount设置为零,这意味着其垂直将根据适合所有所需的行数增长text);使用自动布局,您可以在控件之间建立依赖关系,例如,当一个控件更改自己的大小/位置时,其他控件可以相应地移动/调整大小(例如,与另一个控件保持对齐或腾出空间);和

    • 自动更新contentSize对象UIScrollView

自动布局需要一点时间才能熟练掌握,但对于动态、复杂的用户界面,它可以让您不必编写代码以编程方式手动更改视图的布局。但是如果你没有发现自己在做这种代码,那么你不一定必须使用自动布局。

我应该承认,在非自动布局环境中有些任务是微不足道的(例如移动视图的动画),在自动布局中执行相同的任务可能会令人沮丧地复杂。但是,如果视图之间存在复杂的相互依赖关系(父视图与其子视图之间或兄弟视图之间),自动布局可能会很有用。

于 2013-07-23T17:05:07.240 回答
0

自动布局只是为视图在所有方向上的显示方式提供规则。用户可以定义如何使用它,或者您可以遵循 struct 和 spring 模型。

两者之间的主要区别在于结构和弹簧中没有涉及尺寸,而自动布局表示应该重新排列视图中的尺寸和值

一个优秀的自动布局初学者教程

于 2013-07-23T13:03:48.963 回答