Any-Any大小类被ios7忽略

时间:2014-10-16 09:09:43

标签: ios interface-builder xcode6 size-classes

我正在为iOS7和8 iPhone开发。 由于iOS7不支持紧凑高度大小类,我认为解决这个问题的共识是使用任意大小的类来构建横向iPhone布局, 并使用肖像紧凑宽度常规高度(cWrH)大小类来处理纵向iPhone布局。

我在any-any中对视图设置了约束,然后将cWrH中的约束常量修改为特定于该size类。但是,iOS7设备和Xcode预览会忽略any-any约束,并对纵向和横向使用cWrH约束。

我不知道为什么会这样。我想要做的就是根据方向设置不同的约束。

使用最新的Xcode 6.0.1可以轻松复制。

半相关:How can Xcode 6 adaptive UIs be backwards-compatible with iOS 7 and iOS 6?

屏幕截图如下:

x and y of rect at 0 in Any-Any y=100 for cWrH size class only

1 个答案:

答案 0 :(得分:0)

根据您的问题,您所做的是在Any-Any Size Class中给出了前导,顶部,高度和宽度约束。

所以现在它的位置将固定在横向和纵向的任何设备上。 现在,当您将尺寸类更改为紧凑宽度并在顶部约束中进行更改时,它将同时影响纵向和横向。

使用Any-Any的大小类,您需要做什么才能将控件放在View控制器中,并设置您希望在纵向和横向中保留的约束。

例如:如果要保持高度和宽度不变,请在Any-Any Size Class中给出这些约束。

在Any-Any Size Class中设置约束将使这些约束对于纵向和横向保持相似。

1.。)在纵向设置前导和顶部约束,您可以使用宽度 - 紧凑,高度 - 常规

2.。)在横向设置前导和顶部约束,您可以使用 width- Any,height-Compact

访问下面的链接有很好的解释,您将解决与使用大小等级的自动布局相关的大多数问题:

http://mathewsanders.com/designing-adaptive-layouts-for-iphone-6-plus/

希望这能解决你的问题。