ios - 在 iOS 通用应用程序中启动屏幕 Storyboard约束

标签 ios xcode swift xcode7 swift2

我正在为 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

问题是按尺寸分类的 Storyboard约束定义不够强大,无法表达像屏幕宽度>/<=屏幕高度这样的条件(例如:iPad Air 全屏总是有规则的宽度和高度,但在纵向模式下屏幕宽度 < 屏幕高度屏幕宽度 > 屏幕高度在横向模式下)。

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

最佳答案

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

Select "Aspect Fill" mode

结果:

enter image description here

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

关于ios - 在 iOS 通用应用程序中启动屏幕 Storyboard约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37432351/

相关文章:

ios - (iOS) 当应用程序不再运行时取消所有本地通知

objective-c - 从 XCode 项目连接到 Oracle 数据库

swift - 具有多个 hashKeyValues 的 AWS DynamoDB Swift 查询

iOS 构建错误 : Certificate doesn't match profile: The default keychain doesn't have an identity matching

ios - 使用 Action 将 CollectionView 滚动到下一个单元格

swift - 如何管理实例化的 viewController

ios - Xcode 看不到通过 Cocoapods 添加的对象

ios - 如何禁用 UItextfield 上的替换、插入绘图、查找、学习、说话、说话..、暂停?

ios - CollectionView 单元格未显示

ios - 在 IOS 上播放声音