iOS:多个启动图像

4

是否有可能提供多个启动图像而不只是一个Default.png启动图像?我的目标是,您可以拥有5个不同的启动图像,每次应用程序启动都显示另一个。

以防万一有人回答说,我知道可以为不同的配置(例如屏幕方向)设置不同的启动图像。但这不是我要找的。我希望在完全相同的配置下具有不同的启动图像,唯一不同的变量是启动时间。

3个回答

4
根据这个链接的内容来看,我认为不可能实现。你可以在配置不同的启动图像时有一定的灵活性,以适应自定义URL模式或甚至本地化它们,但除此之外,由于它们在.plist文件中指定,因此iOS在处理您的应用程序之前快速处理它们,这就是您所获得的所有灵活性...

没错。plist文件和图片都在已签名的“bundle”中。如果您在该“bundle”中更改了任何内容,这将使签名无效,您的应用程序甚至无法启动。 - Martin Ullrich
谢谢。这正是我所假设的。但我仍然希望有些事情我可能错过了。 - znq

2
有传言称可以从“文档”文件夹中加载默认图像:
  • 在info.plist中设置路径../Document/Default.png
  • 在每次应用程序启动时,将Default.png覆盖为您预定义的图像之一
  • *在第一次启动时,启动屏幕将是黑色的
PS. 我没有尝试过,所以不能确定它是否有效。即使它有效,您也可能会在苹果审核过程中遇到问题。

谢谢。我会研究一下的。 - znq
有人尝试过这个吗?听起来非常有趣。 - Léo Natan
这在iOS7上也可以工作,但还没有尝试提交。顺便提一下,设置的路径是../..Documents/foo.png - 基本上你需要完全走出应用程序包。 - ecume des jours

-1

如果您使用JavaScript / jQuery插入启动图像而不是输入纯HTML,则可能会实现。

在脚本中,您需要指定何时应使用哪个闪屏。然后使用以下内容:

 <script type="text/javascript">
   (function() {
      var a;
      if(navigator.platform==="iPad"){
         a = window.orientation === 90 || window.orientation === -90  ? 
             "landscape.jpg":"portrait.jpg"
         } else {
         a = window.devicePixelRatio === 2 ?
              "retina.jpg" : "startup.jpg"
         }
     document.write('<link rel="apple-touch-startup-image" href="'+a+'"/>')
     })()
 </script>      

你的逻辑必须向图像名称添加一些变量。所以如果是时间,你会有

 landscape-Morning.jpg
 landscape-Noon.jpg
 landscape-TeaTime.jpg
 landscape-Evening.jpg

对于其他图片也是一样的。

虽然我没有尝试过,但由于您可以使用JavaScript根据方向设置要显示的图像,因此根据时间设置要显示的图像不应该是问题。


假设你正在谈论Web应用程序... :-) - frequent
2
抱歉,这是一款本地应用程序。但无论如何感谢您的回答。我认为对于其他正在寻找答案的人来说,这将是有帮助的。 - znq
这样做不起作用,因为启动图像是由系统在您的应用程序加载时选择的。 - Diogo T
@DiogoTridapalli:我已经在一个Web应用程序中做了一段时间,所以请提供一个示例/源/推理。 - frequent
@frequent 对于原生应用程序,据我所知,启动图像无法通过代码定义。您可以使用资源目录或特定的Storyboard进行定义。不再建议使用文件名。https://developer.apple.com/library/ios/recipes/xcode_help-image_catalog-1.0/chapters/AddingLaunchImagestoanAssetCatalog.html - Diogo T

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