启动图像不会显示在我的iOS应用程序中

Edd*_*man 147 xcasset launchimage xcode6 ios8

我希望在我的应用程序中显示一个简单的启动屏幕,使用Xcode 6.0.1构建.

我以两种方式添加了一个启动屏幕:作为XIB(使用默认名称,LaunchScreen.xib)和作为xcassets中的launchimage设置.

我已确保将"启动屏幕文件"设置为LaunchScreen.xib.

我已经模拟了所有可用的设备(例如,"iPhone5 iOS8"/"iPhone5s iOS8"/"iPhone6 iOS8".请注意,模拟器中只有iOS 8可用).

Kha*_*azi 236

所以这对于一些应该是微不足道的事情来说是非常痛苦的.这是我做的:

使用xcassets

我决定使用.xcassets而不是.xib来启动.我删除了.xib.如果你的项目中已有images.xcassets,那么你可以在File> New> file中添加一个:

AddNewASsetCatalog

创建启动映像集

现在,通过右键单击导航器区域,至少在.xcassets文件中创建一个launchimage集和图标集.

添加新的启动图像和应用程序图标

更新应用程序图标并启动图像设置

然后我确保目标中的"应用程序图标和图像集"如下所示.

非常重要:确保"启动屏幕文件"设置为空白.

应用图标和图像集

添加图像

最后但同样重要的是,Apple用于设备选择的术语令人困惑.最初我认为,因为我只部署iOS8(iPhone Portrait),我可以这样做,只需输入iPhone 6和iPhone 6+发布图像:

设备

我很快意识到这不是它的工作方式而且我得到了一个警告:"需要一个适用于iOS 7.0及更高版本的iPhone Retina(4英寸)启动图像."

所以我不得不在iOS 7.0及更高版本中选择iPhone并为iPhone 5s添加一个Image.

因此,要找出右侧要检查的框,请不要问:我的最低iOS和设备及设备方向是什么,而是询问:

哪些设备可以支持我的最低iOS?现在这些设备支持的最低iOS是多少?并确保你检查所有这些盒子.所以对我来说,我的目标是iPhone 5s,6和6 Plus 8.0,但考虑到iPhone 5s可以存在7.0,我需要检查7.0框以显示图像占位符.换句话说,右侧的(iOS)复选框显示该设备可用的最低iOS版本,您需要单击它以显示图像占位符并放置图像,无论您是否在此iOS版本上进行部署.

希望这有助于某人.

添加所有设备

在此输入图像描述

  • "将"启动屏幕文件"保持为空白." - 做了伎俩. (88认同)
  • 这有效但只有当应用程序从设备中删除并重新安装时才会显示更改.即使在清理缓存并删除派生数据后,旧的启动屏幕似乎仍然存在. (46认同)
  • 啊,我需要从手机上删除我的应用程序以便更改生效,我只是浪费了很多时间:'( (15认同)
  • 先生,你赢了互联网. (5认同)
  • 这东西太烦人了。 (2认同)

arc*_*bob 31

LaunchScreen.xib和信息价值Launch screen interface file base name是从我的经验创建项目时创建的两个占位符.如果您想Images.xcassets专门用于启动屏幕,请删除LaunchScreen.xibinfo.plist项目.

如果您提供info.plist设置,您的应用程序将使用xib而不是您的Images.xcassets

  • "arcady bob"解决方案对我有用:我打开"info.plist"并删除元素"启动屏幕界面文件基本名称",运行我的应用程序,最终启动图像. (2认同)

Jua*_*ero 19

Xcode 8:

LaunchScreen.xib中使用的图像不应位于.xcassets上,请尝试将它们放入捆绑包中.

看起来在.xib加载时,.xcassets中的图像尚不可用.

编辑:由于添加一些本地化后的一些不透明的原因,启动屏幕停止工作,现在它使用资产中的图像,非常奇怪.

  • 我注意到从.xcasset加载时,我的LaunchScreen上没有显示较大的图像(> 512px),而较小的图像会显示.谢谢你提到你的解决方案! (3认同)
  • 添加到您的答案...最近我尝试在我的"Launch Screen.storyboard"文件中使用自定义字体.我在阅读之后无法明白的原因[回答](http://stackoverflow.com/questions/25794314/using-custom-fonts-with-xcode-6-ios-8-interface-builder-launch-screen )和更多的研究/测试.对于图像也是如此... Xcode准备应用程序启动屏幕的纵向和横向快照,并且(当前)在此处保存:`/ Library/Caches/Snapshots/<< app_bundle >> /`,在支持文件加载之前完成,包括自定义字体和资产目录. (2认同)

And*_*lin 16

我的解决方案是创建所有启动图像. 在此输入图像描述

然后我将Launch Images Source设置为LaunchImage资源,并将启动屏幕文件留空.

最后,如果项目没有Launch Screen.xib,则添加该文件并保持原样. 在此输入图像描述

  • 添加这么多IMages.增加ipa的大小.XIB Launch是解决方案.例如,如果您有简单的背景和中间的徽标,那么建议我们使用XIB.只需设置背景颜色并在中间添加一个UIImage就可以了.但它又是一个选择 (4认同)

Sus*_*ore 12

对我来说,当我卸载应用程序然后重新启动模拟器时,它工作.再次安装时,启动图像按预期显示.这也适用于实际设备.


Bry*_*n P 11

对于那些正在使用它的人Asset Catalog's Launch Image,因为我学到了最困难的方法,我有这个场景,我第一次给了一个jpg文件,然后我让他们把它转换成PNG.

我很信任他们,我首先搜索了互联网为什么发布图像没有显示,并且每个解决方案都没有用,然后我尝试放回旧的发布图像并且工作正常,它就在那里,我想我是什么有不是一个适当的PNG文件.

TL; DR: 确保您实际使用的是正确的PNG文件,而不是具有重命名扩展名的文件.


小智 10

从Info.plist文件中删除"启动屏幕界面文件基本名称"并删除"启动Screen.xib"对我有用.


hic*_*ico 6

接受答案的问题是,如果您没有设置启动屏幕文件,您的应用程序将在iPhone 6和6+ =>模糊渲染等设备上处于升级模式.

以下是我在每个设备上都有一个完整的工作解决方案(我的目标是iOS 7.1并使用Xcode 8)(真的,我对这个升级问题感到疯狂)

1.准备你的.xcassets

为了简化它,我使用了一个矢量.PDF文件.这非常方便,避免为每个分辨率(1x,2x,3x ......)创建多个图像.我还假设你已经创建了你的xcassets.

  • 将启动屏幕图像(或矢量文件)添加到项目中
  • 转到.xcassets并创建新图像集.在图像的"属性"窗口中,选择" 缩放" - >"单个缩放"
  • 将矢量文件拖放到图像集中.

为.xcassets创建图像集

2.创建启动屏幕文件

创建启动屏幕文件

3.将图像添加到启动屏幕文件

  • 将图像视图对象添加到启动屏幕文件(删除自动创建的标签).此图像视图应参考之前的.xcassets图像集.您可以从Name属性中引用它.在此阶段,您应该在图像视图中正确查看启动屏幕图像.
  • 为此图像视图添加约束以保持纵横比取决于屏幕分辨率.

将启动屏幕图像添加到启动屏幕文件

4.将启动屏幕文件添加到目标

Fianlly,在Target General属性中,参考Launch Screen文件. 目标属性和启动屏幕

启动您的应用,应显示启动画面.也可以在iPhone6和iPhone6 +上试用,并且应该正确显示您的应用程序而不进行任何升级(启动屏幕文件旨在执行此操作).


sid*_*ick 6

只需删除并重新安装该应用程序对我有用:

  • 在模拟器中测试

    1. 在模拟器中删除应用程序.
    2. 退出并重新启动模拟器.
    3. 在Xcode中再次运行该项目.

  • 在设备上测试

    1. 从设备中删除应用程序.
    2. 在Xcode中再次运行该项目.

  • 对于设备,不仅删除和重新安装不适合我.在我的情况下,重新启动手机(设备)是解决方案 (2认同)

小智 5

经过几个小时的沮丧,我决定用这种方式.它适用于iPhone和iPad(在Xcode 6.1上)

  1. 文件>>新文件>>用户界面>>启动屏幕
  2. 在YourApp-Info.plist中创建新的键/值:"启动屏幕界面文件基本名称"/"您的启动屏幕名称"

1张图片价值超过千字.请看下面:

文件>>新文件>>用户界面>>启动屏幕

在YourApp-Info.plist中创建新的键/值


car*_*rso 4

我读到过 Xcode 6 中的一个错误,该错误阻止仅横向应用程序显示启动图像。

尝试在 Images.xcassets 中设置图像和方向:

Images.xcassets 的 Xcode 屏幕截图

  • 检查属性检查器上的方向。 (2认同)