为 iPhone 和 iPad 启动屏幕选择不同的背景图像

Posted

技术标签:

【中文标题】为 iPhone 和 iPad 启动屏幕选择不同的背景图像【英文标题】:Choose different background image for iPhone and iPad launch screen 【发布时间】:2017-10-06 23:37:52 【问题描述】:

我构建了一个 iPhone 应用程序,其背景图像非常适合 iPhone 屏幕,但是当我在 iPad 上运行时,该图像会水平拉伸(因为 iPad 屏幕比 iPhone 更方形)。

有没有办法让我选择要加载的背景图片?

我知道我可以使用UIDevice.current.userInterfaceIdiom == .phoneUIDevice.current.userInterfaceIdiom == .pad 检查我在哪个设备中,但如果 Launch Screen 不接受附加的代码,我该如何选择正确的图像?

【问题讨论】:

使用启动故事板,而不是启动图像。然后您可以使用尺寸类来适应场景呈现。您不能使用代码,因为启动图像是在您的应用开始执行之前显示的。 我正在使用 LaunchScreen.storyboard ......但我没有得到这些“尺寸等级”......这是什么? 在 Xcode 9 中,它位于“因特征而异”下 好吧,我看不到任何关于特征的变化,但我还是不明白第一条评论......我在 LaunchScreen.storyboard 视图控制器中有三个组件,其中一个是背景imageView,我希望能够为 iphone 选择一个图像,为 ipad 选择另一个图像...... 在您的启动故事板场景中,您需要添加多个图像视图,并为“常规宽度/常规高度”(这是 iPad 的特征)安装其中一个,为其他尺寸类别安装一个.在 Interface Builder 中,您可以在底部边框中选择“View as...”,以根据不同的大小类别改变场景。 【参考方案1】:

我能想到的最简单的方法是在您的图像集中有两个设备位于您的Assest.xcassets 中。然后在 iPhone 和 iPad 两台设备中根据需要分配不同的图像,如下所示:

然后是在 iPhone(左)和 iPad(右)上运行应用程序时的预览。每种设备中有两张不同的图像。

【讨论】:

iPad 单独支持两个方向怎么样?【参考方案2】:

在您的 LaunchScreen.storyboard 文件中,您可能有一个 UIImageView 包含您的图像。当您单击该图像视图时,您将在右侧滑块视图中看到该视图的详细信息。将视图的内容模式设置为“中心”,一切就绪。如果中心不起作用,您也可以使用“aspect fit”或“aspect fill”。

【讨论】:

我不能接受作为答案,因为它没有回答我的问题(即加载不同的图像),但这是一个很好的提示

以上是关于为 iPhone 和 iPad 启动屏幕选择不同的背景图像的主要内容,如果未能解决你的问题,请参考以下文章

支持 iPhone 6 和 iPhone 6+,针对 iPad 纵向和横向方向具有不同的启动/启动屏幕图像

显示 iPhone 屏幕尺寸的 iPad 应用程序

具有全屏图像视图的启动屏幕 .XIB

ipad和iphone的适配

Xcode 6 自定义启动屏幕

iphone 4 专用启动画面