在iOS Universal app中启动屏幕故事板约束

hor*_*sun 6 xcode ios swift xcode7 swift2.2

我正在LaunchScreen.storyboard为Xcode 7.3中的iOS Universal应用程序创建一个文件.

我必须只使用在storyboard中定义的约束,因为启动屏幕将在应用程序加载之前显示(无法在UIViewController子类中以编程方式配置约束).

主要的背景图像UIViewController

  • 纵横比(3456:2592),
  • 垂直居中
  • 居中水平约束.

我试图获得以下条件:

  • 保持背景图像长宽比,
  • 屏幕宽度<=屏幕高度backgroundImageView.Top = containerView.Top时激活 在此输入图像描述
  • 屏幕宽度>屏幕高度backgroundImageView.Leading = containerView.Leading - 20时激活 在此输入图像描述

问题是按大小类定义的故事板约束不足以表达屏幕宽度>/<=屏幕高度等条件(例如:iPad Air Fullscreen总是有规则的宽度和高度,但屏幕宽度<纵向模式下的屏幕高度屏幕宽度>横向模式下的屏幕高度).

我还尝试定义设备设置的背景图像资产,但它只允许指定iPhone/iPad x1,x2和x3版本的图像.

ken*_*ytm 6

您不需要自动布局.使UIImageView填满整个屏幕,然后为背景UIImageView选择Aspect Fill模式.

选择

结果:

在此输入图像描述

请注意,背景图像(1)保持纵横比,(2)水平和垂直居中,(3)自动放大以适应最长轴.