2011-08-30 51 views
5

Xcode中的一个先决条件是为iPhone应用程序加载时设置“默认”和“默认@ 2x”图像。在iOS上生成随机默认屏幕

是否有可能有一些默认屏幕制作,以png格式插入项目中,每次应用程序加载时,选择一个随机默认屏幕使用?

+2

我会建议一个更具体的问题:是否可以在运行时更改默认图像?如果你可以添加随机性是微不足道的,并且将它包含在你的问题中只会让答案更难回答。 –

+0

我很感谢你解决这个问题。但是,以下答案证明令人满意。谢谢 –

+0

它只是作为友好的建议 - 我很抱歉,如果我脱离了超然。我通常会发现,一般来说,询问最简单的问题会带来更多更好的答案,因为其他人更容易理解你所问的问题(我期望根据标题而有所不同)。 –

回答

8

您无法更改Default.png。一旦应用程序发货 - 这是“石头”。直到下一个版本,那就是。原因很简单(同样为什么你不能更改应用程序图标)。应用程序包是只读的。它是只读的,因为它是由你和苹果签名的。修改包的内容会使签名无效。

+0

谢谢你的答案Eimantas,我很怀疑。对于我的下一个应用程序只有一个好主意,但我会通过不同的方式实现它。再次感谢。 –

1

如果不重建应用程序,则无法更改启动屏幕。它的名字要么在info plist中硬编码,要么在plist中没有设置任何内容时被设置为默认值“Default.png”。

由于图像文件和plist文件都在数字签名的应用程序包中,即使您可以更改它们中的任何一个(您不能因为它是只读的),您的应用程序的签名将会失效并在非 - 越狱设备。

7

您可以通过在info.plist中设置UILaunchImageFile属性,然后将新图像写入Documents文件夹来更改iOS中的默认屏幕(至少在首次启动后)。

例如。

<key>UILaunchImageFile</key> 
<string>../Documents/NewDefault.png</string> 

然后写你的随机飞溅到/Documents/NewDefault.png


看来我必须更加规范......我不是建议你在运行时修改任何东西在你的应用程序包,正如人们所说的,这是不能发生。

但由于/Documents文件夹位于.app文件夹旁边,因此可以通过相对路径设置UILaunchImageFile,然后将文件放在应用程序运行时指定的路径处。我们已经完成了这个工作,并且它可以工作,所以在你投票之前,请自己尝试。

+1

这是尝试和检查?据我所知,这个文件(info.plist)仍然是只读的。 – Jann

+0

是的,我们已经做到了。您没有写入info.plist,您正在写入Documents文件夹。 –

+0

如何在不写入info.plist的情况下覆盖info.plist中的“”“UILaunchImageFile属性? – dklt