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