我正在为 Xcode 7.3 中的 iOS 通用应用开发 LaunchScreen.storyboard
文件。
我必须只使用 Storyboard中定义的约束,因为启动屏幕将在应用加载之前显示(无法在 UIViewController
子类中以编程方式配置约束)。
主UIViewController
中的背景图片有
- 纵横比(
3456:2592
), - 垂直居中
- 水平居中约束。
我正在尝试获取以下条件:
- 保持背景图片的纵横比,
- 当屏幕宽度<=屏幕高度时激活
backgroundImageView.Top = containerView.Top
- 激活
backgroundImageView.Leading = containerView.Leading - 20
当 屏幕宽度 > 屏幕高度
问题是按尺寸分类的 Storyboard约束定义不够强大,无法表达像屏幕宽度>/<=屏幕高度这样的条件(例如:iPad Air 全屏总是有规则的宽度和高度,但在纵向模式下屏幕宽度 < 屏幕高度 和屏幕宽度 > 屏幕高度在横向模式下)。
我也尝试过定义设备设置的背景图像资源,但它只允许指定图像的 iPhone/iPad x1、x2 和 x3 版本。
最佳答案
您不需要自动布局。使 UIImageView 填满整个屏幕,然后为背景 UIImageView 选择 Aspect Fill 模式。
结果:
请注意,背景图片 (1) 保持纵横比,(2) 水平和垂直居中,(3) 自动放大以适应最长轴。
关于ios - 在 iOS 通用应用程序中启动屏幕 Storyboard约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37432351/