支持iOS6和iOS7的启动屏幕 - 强制启动屏幕

时间:2013-09-24 08:23:01

标签: ios7 splash-screen

当谈到启动屏幕时,我找不到一种统一的方式来模仿iOS6和iOS7上的应用程序外观(支持两者)。如果我们有工具栏菜单,或者你们有什么好主意如何解决它,我们是否被迫定期制作徽标或类似的闪屏?

6 个答案:

答案 0 :(得分:73)

简短回答

在iOS 7中,应用可以使用不同的启动图像,具体取决于运行的iOS版本。要提供不同的启动图像,请将 UILaunchImages 键添加到Info.plist文件中并使用用于描述每个发布图像的字典。

背景

它使用以下键:

  

UILaunchImageName - 包含PNG图像文件名称的字符串。图像文件必须位于应用程序包的顶层。   您为此密钥指定的名称不应包含文件名   扩展,也不应该包括修饰符,如@ 2x,-568h,   ~iphone,或~ipad。

     

在磁盘上,您的图像文件名可能仍包含@ 2x,-568h,   ~iphone,或~ipad修饰符,尽管它们不是   需要。系统会自动考虑此类修饰符   选择要加载的文件。

     

UILaunchImageMinimumOSVersion - 对于iOS7,这应该是一个字符串“7.0”。

     

UILaunchImageOrientation - 包含以下内容之一的字符串:Portrait,PortraitUpsideDown,Landscape,LandscapeLeft,LandscapeRight。

     

UILaunchImageSize - String 指定宽度和高度,例如:“{320,480}”。您必须指定相对于的宽度和高度   设备纵向。换句话说,肖像和   定位到同一设备的风景图像将具有相同的宽度   和身高。

     

如果存在此密钥,iOS 7将专门用于获取启动   图片。

但是:我发现坚持iOS7的命名约定也有很多帮助!

  

iOS 7.0及更高版本支持此密钥。

好的 - 那么现在呢?

因为我已经为iOS6启动了图像并且具有所有特定的命名约定。我选择复制所有这些,并在名称前加上“iOS7-”,以限制我对所有不同尺寸和名称的混淆。制作一个前缀应该会派上用场,因为大多数图像会立即正确加载。

文件名: 我已经为iOS6提供了这些,我还列出了有需要的人的文件大小:

  • Default.png (320x480)
  • Default@2x.png (640x960)
  • Default@2x~ipad.png (2048x1496)
  • 默认~ipad.png (768x1004)
  • Default1024x768.png (1024x768)
  • Default1024x768@2x.png (2048x1536)
  • Default-568h@2x.png (640x1136)
  • Default768x1024.png (768x1024)
  • Default768x1024@2x.png (1536x2048)
  • Default-Landscape~ipad.png (1024x748)
  • Default-Portrait@2x~ipad.png (1536x2048)

所以我为iOS7(相同大小)制作了所有这些文件名的副本,前缀为" iOS7 - ":

  • iOS7-为Default.png
  • iOS7-Default@2x.png
  • ...

在XCode

现在在PLIST中创建您的条目。转到your-name-of-application.plist。在空白区域中,右键单击并选择“添加行”。确保它成为顶级项目,而不是.plist中的其他信息的子项。

写: UILaunchImages

右键单击此UILaunchImages并选择值类型“Array”。

使用下面的插图作为文本指南以及完成后文本的外观:

enter image description here

如果你打开这个数组,左边的小指示三角形指向下方,它第一次就是空的,但如果你选择“添加行”,它会打开它会创建一个子行。现在就这样做:

右键单击UILaunchImages并选择“添加行”。 右键单击此新行(项目0)并选择值类型“Dict”

使用三角形指示器继续打开此项目,然后右键单击并“添加行”

此项目您将命名为UILaunchImageMinimumOSVersion并将值类型设置为“string”,将字符串设置为“7.0”

现在以下是所有字符串,并且应与UILaunchImageMinimumOSVersion项目处于同一级别。在同一个词典(字典)。只需为每个选择“添加行”创建这些:

UILaunchImageName - iOS7-launch-image的基本名称。就我而言,这是“iOS7-Default”

UILaunchImageOrientation - 示例:肖像

UILaunchImageSize - 基本iOS7-Default.png的大小:" {320,480}"。程序将找到具有基本名称排列的所有文件。请记住选择没有ipad / iphone / portrait / landscape或.png规范的文件的基本名称。

注意:

在首次在所有可用插槽中添加iOS6图像后,Xcode已经为.plist制作了以下项目: - )

UILaunchImageFile~ipad ... =“默认” - 所以这没关系

UILaunchImages~ipad ...有两个项目需要更新到iOS7版本,因为他们现在错误地持有iOS6版本。那些我命名为Default1024x768和Default768x1024的人,现在我只为每个名字添加了“iOS7-”,我就完成了。

如何直接编辑想要编辑plist的人的示例:

<key>UILaunchImages</key>
  <array>
    <dict>
      <key>UILaunchImageMinimumOSVersion</key>
      <string>7.0</string>
      <key>UILaunchImageName</key>
      <string>iOS7-Default </string>
      <key>UILaunchImageOrientation</key>
      <string>Portrait</string>
      <key>UILaunchImageSize</key>
      <string>{320, 480}</string>
    </dict>
  </array>

[由jd编辑:&#34的固定拼写; UILaunchImages&#34;]

答案 1 :(得分:8)

在项目浏览器中突出显示项目,选择“常规”,向下滚动到“应用程序图标”,单击“使用资产目录”,然后选择“迁移”。您现有的图标和初始屏幕将自动迁移到资产目录中。然后,您可以选择目录以添加更多图像。

要添加新图像,您只需从Finder拖动并放入每个图像类型的正方形。

(注意:目录编辑器莫名其妙地使用不可滚动的宽格式,如果屏幕不够宽,你可能会丢失右侧的东西。)

答案 2 :(得分:5)

您还可以使用Xcode 5中的新image catalogue功能来管理多个版本的启动图像。

答案 3 :(得分:0)

现在您可以直接在images.xcassets中添加应用图标和启动图片, 点击+按钮为iOS 5,6,7,iphone4,iPad添加iphone5的相应图像集。 现在无需像default.png,default @ 2x.png

那样设置图像名称

答案 4 :(得分:0)

使用images.xcassets存储库时会收到警告,它不允许您本地化启动画面。

我目前正试图获得我们应用的法语和英语版本。

WWW&GT;如果你需要本地化你的启动画面,这种'plist'方法会起作用吗?

答案 5 :(得分:0)

我也为iOS 7开发的旧应用程序遇到了同样的问题。使用Xcode 6可以很好地存档和上传,但是#4;二进制文件没有针对iPhone5和#34;进行优化。 Xcode 7返回错误。在尝试了无数其他解决方案之后,我只是删除了对任何启动映像的所有引用(因为我使用的是通用.xib)并将部署目标设置为7.0到8.0