虽然有很多关于构建适用于 4 英寸和 3.5 英寸屏幕尺寸的故事板布局的问题和答案,但我找不到适合以下场景的解决方案。
我将自动布局与 ios6(和 ios7)一起使用,我不必支持 landscpae 或 ipad。我有一个带有几个子视图的 UIView,它们必须看起来像下面的模型。在故事板中设置自动布局约束以适应任何一种屏幕尺寸都很容易。我的问题是 -如何让自动布局在运行时根据屏幕大小选择正确的约束?
请注意,我不想使用 2 个不同的故事板。在我的整个应用程序中这样做需要做很多工作,而且我必须连接每个故事板上的所有代表、出口和动作。换一个屏幕需要我做双倍的工作。
我已经尝试了 2 种方法来在一个故事板上完成这项工作,但我对其中任何一个都不满意。
- 双重约束。较大的约束 (50) 具有比较低的约束 (30) 更高的优先级。这种方法的问题在于,在 3.5" 屏幕尺寸上,自动布局可能会选择一些较低优先级的约束——足以满足布局——但会留下一些高优先级的约束。
- 子类 NSLayoutConstraint。在这个方法中,storyboard 中的所有约束都设置为 NSDualLayoutConstraint。在 NSDualLayoutConstraint 的初始化代码中,将约束的常量更改为 3_5_constant 的值,以防运行时屏幕大小为 3.5"。这种方法更具确定性,但在界面生成器预览中看不到 3.5" 布局.
如果只有界面构建器约束具有将在屏幕尺寸为 3.5" 时应用的辅助常量值,它将解决我的问题。所以我仍然有我的问题 - 如何正确使用单个故事板来正确布局其子视图4" 和 3.5" 屏幕尺寸?