我正在为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?
屏幕截图如下:
1 回答
根据您的问题,您所做的是在Any-Any Size Class中给出了前导,顶部,高度和宽度约束 .
所以现在它的位置将固定在横向和纵向的任何设备上 . 现在,当您将尺寸类更改为紧凑宽度并在顶部约束中进行更改时,它将同时影响纵向和横向 .
使用Any-Any的大小类,您需要做什么才能将控件放在View控制器中,并设置您希望在纵向和横向中保留的约束 .
例如:如果要保持高度和宽度固定,请在Any-Any Size Class中给出这些约束 .
在Any-Any Size Class中设置约束将使这些约束对于纵向和横向都保持相似 .
1.)在纵向中设置前导和顶部约束,您可以使用 width- Compact, height-Regular .
2.)在横向中设置前导和顶部约束,您可以使用 width- Any,height-Compact .
访问下面的链接有很好的解释,您将解决与使用大小类自动布局相关的大多数问题:
http://mathewsanders.com/designing-adaptive-layouts-for-iphone-6-plus/
希望这能解决你的问题 .