如果方向不是问题,自动布局?

时间:2013-07-23 13:00:10

标签: iphone ios xcode

我目前正试图在Xcode中解决自动布局问题,有了它,我发现了一些问题。

现在,我没有100%完全了解自动布局的工作方式,因此我学习它可能会变得容易,但我认为很难说实话。我经常制作游戏,因此,我以编程方式在屏幕上添加了很多视图。现在,当我这样做时,自动布局似乎弄乱了所有内容,因此我不断地确保每一个自动布局功能都是正确的,并且有一堆!

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

先谢谢

2 个答案:

答案 0 :(得分:2)

有几点想法:

  1. 自动布局不是必需的。

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

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

    • 支持不同的屏幕尺寸(例如iPhone 3.5“屏幕与4.0”屏幕);

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

    • 自动更新contentSize个对象的UIScrollView

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

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

答案 1 :(得分:0)

Autolayout只是为视图提供了如何在所有方向上显示的规则。用户可以定义如何使用它,也可以按照结构和弹簧模型进行操作。

两者之间的主要区别在于结构和弹簧中没有尺寸,而autolayout表示应该重新排列任意视图中的尺寸和值

An excellent beginner tutorial fo autolayout