在iOS通用应用中启动屏幕故事板约束

9
我正在为Xcode 7.3中的iOS通用应用程序编写LaunchScreen.storyboard文件。 我必须仅使用在storyboard中定义的约束条件,因为启动屏幕将在加载应用程序之前显示(无法在UIViewController子类中以编程方式配置约束条件)。主要的UIViewController中的背景图像具有以下特点:
- 纵横比(3456:2592), - 垂直居中和 - 水平居中约束。
我正在尝试满足以下条件:
  • 保持背景图片的宽高比,
  • 屏幕宽度 <= 屏幕高度时,激活backgroundImageView.Top = containerView.Top enter image description here
  • 屏幕宽度 > 屏幕高度时,激活backgroundImageView.Leading = containerView.Leading - 20 enter image description here

问题在于,故事板约束定义的尺寸类不足以表达像屏幕宽度 >/<= 屏幕高度这样的条件(例如:iPad Air全屏始终具有常规宽度和高度,但是在纵向模式下屏幕宽度 < 屏幕高度,而在横向模式下屏幕宽度 > 屏幕高度)。

我也尝试定义背景图像资源集,但只允许指定iPhone/iPad x1、x2和x3版本的图像。

1个回答

8
你不需要使用自动布局。将UIImageView充满整个屏幕,然后选择Aspect Fill模式作为背景UIImageView即可。

Select "Aspect Fill" mode

结果:

enter image description here

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

你好,有推荐的图片尺寸吗? - Fernando Reynoso
1
@FernandoReynoso 如果你需要清晰的边缘,就像2001×2001的正方形(iPhone 7的3倍),但如果背景是摄影的,不需要清晰的边缘,图像大小并不重要,只要不太小即可。让你的平面设计师自行选择。 - kennytm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接