在 iOS 中动态更改启动图像

Posted

技术标签:

【中文标题】在 iOS 中动态更改启动图像【英文标题】:Dynamically change launch image in iOS 【发布时间】:2011-08-10 18:00:24 【问题描述】:

我在发布图片上有一个赞助商徽标。有没有办法动态更改启动图像以旋转赞助商徽标?

谢谢

【问题讨论】:

【参考方案1】:

iPhone 应用程序的默认图像必须是捆绑包中的固定图像文件。您不能动态更改它。

但是,您可以在启动图像后加载应用时显示动态图像。您可以使用动画进行设置,或者只是每次选择随机图像。

【讨论】:

但是来自 ios 8.0 的 LaunchScreen.xib 呢?【参考方案2】:

根据 Apple 的 HIG Human Interface Guide,启动屏幕应该仅用作占位符,以在应用程序完成启动过程时让用户产生应用程序处于打开状态的错觉。

Apple 将允许使用启动屏幕,但知道他们可以并且确实有权仅根据您的使用方式拒绝您的应用。

就像前面的答案所述,在初始启动屏幕过去后,您可以做任何您想做的事情。播放视频、运行动画或使用您的赞助图片显示第二个视图。

最后,我不建议这样做,但如果你决定在启动屏幕上做点什么,你可以试试这个。

初始屏幕是硬编码的或设置为 1 个文件名。在您的应用关闭之前,您可以使用来自 Web 服务或本地存储的新文件动态替换硬编码的文件名,从而替换现有的初始屏幕图像。我还没有尝试过,但这很可能是可能的。请注意,它可能无法通过 Apple 的批准程序。祝你好运。

【讨论】:

有趣的想法,虽然我很难想象它是如何工作的 - 当然是 Apple 校验和捆绑包【参考方案3】:

由于我需要在 iPhone 和 iPad 启动屏幕上使用不同的图像,我按照以下步骤操作:

1. Add two UIImageViews
2. Set Width & Height constants for both UIImageViews as per your requirements.
3. Now select the iPhone UIImageView and set its Height Constraints Regular Regular (RR) height constant as 0.
4. Do the same for for iPad UIImageView and set its Height Regular Regular (RR) height constant as actual required height and set 0 to the Constant. 
5. When you test it on iPhone the iPad ImageView will disappear and vice-versa will happen on iPad. 

【讨论】:

以上是关于在 iOS 中动态更改启动图像的主要内容,如果未能解决你的问题,请参考以下文章

iOS 应用程序 - 如何从外部源更改启动图像?

在 iOS 中,如何根据环境(dev、hom、prod)更改启动屏幕图像?

Flutter 动态更改应用程序启动图标

更改捆绑包标识符时,iOS 启动屏幕不显示图像

启动应用程序后启动图标略有不同

如何在 iOS 中更改 Launch 图像的属性?