2014-09-29 38 views
0

因为我有Xcode6我的生活变成了一场噩梦。 我只是无法理解约束和故事板问题,我想得到一点帮助,我做了很多努力,但事情似乎没有工作。为什么Xcode不断改变故事板辩护

首先,有一个按钮说w Any h Any,其中你可以选择你的屏幕大小。我将它设置为fit all iPhones in portrait。为什么Xcode每次我再次打开时都将它更改回Any? 他为什么不保持这种配置?

其次,我想尝试和理解这件事,有没有什么不同,当我在all iPhones上工作或当我在Any上工作?所以例如,如果我设置了一些标签并将其约束条件设置为Any,如果我在模式all iPhones中执行相同操作,它会看起来不同吗?

换句话说,请纠正我,如果我错了,有这样的:如果我设置一个标签在iPhone的模式为中心,不是从上限制其垂直距离为X,和故事板高度为y,因此对于屏幕高度为y * a的任何iPhone,该距离将变为x * a?那是对的吗 ?

+0

我没有,问题不是关于具体的观点,它了解原理,你可以在屏幕上假设一个标签。顺便说一句,你能帮我理解我的第一个和第二个问题吗? – Curnelious 2014-09-29 10:11:43

回答

1

这与Xcode 6的一个名为“Size classes”的新功能有关,您可以在其中为不同的设备类别定义不同的约束/子视图。

不能定义iPhone大小的肖像类除非你还定义基础任何规模大小类,这就是为什么它在不断变化回来。

有关官方Apple文档的更多说明,请参阅here

回答你的第二个问题是没有,他们不会改变:与大小类您可以启用/禁用/更改限制取决于尺寸级别,但是约束的基本功能将是在所有大小类别上都是相同的(例如,superview约束中的中心总是使用当前超视图边界居中)。

+0

非常感谢,我不确定我是否理解你所说的话。我已阅读过苹果文档,1。当你设置尺寸等级时,它总会使其成为“任何”?我曾经禁用它,并删除了所有我的约束! 2.这里的东西,仍然不是逻辑。如果将其设置为Any,则故事板为600x600,这意味着宽高比为1:1。对于您放入的每个视图,所有距离都将按1:1进行计算,因此,对于使用2:3的设备,它当然会有所不同。换句话说,根据这个,我可以如何解释x * a的例子? – Curnelious 2014-09-29 10:22:20

+0

故事板上视图的大小只是代表性的。默认情况下,视图控制器的视图将采用设备窗口的大小(或更具体地说,是其父视图的大小)。限制条件不会根据预先计算的宽高比计算距离。约束将相互关联的属性与您手动定义的度量关联起来。 “中心”约束只是定义:“在其超级视图中居中”。 – 2014-09-29 10:37:54

+0

我认为重新阅读[AutoLayout introduction](https://developer.apple)是个好主意。COM /库/ IO的/文档/ UserExperience /概念/ AutolayoutPG /介绍/ Introduction.html),然后读出[尺寸类(https://developer.apple.com/library/ios/recipes/xcode_help-IB_adaptive_sizes/章节/ ChangeViewPosition.html#// apple_ref/doc/uid/TP40014436-CH9-SW1)文件。这里都有解释。 – 2014-09-29 10:38:55