启动图像不会出现在我的 iOS 应用程序中

我想得到一个简单的启动屏幕,显示在我的应用程序,建立使用 Xcode 6.0。

我通过两种方式添加了一个启动屏幕: 作为 XIB (默认名称为 LaunchScreen.XIB)和作为 xcassets 中的 launchimage 集。

我已经确保我的“ Launch Screen File”设置为 LaunchScreen.xib。

我模拟了所有可用的设备(例如,“ iPhone5iOS8”/“ iPhone5siOS8”/“ iPhone6iOS8”)。注意,模拟器中只有 iOS8可用)。

125784 次浏览

我在 Xcode 6中读到过一个错误,它阻止只有横向应用程序显示启动图像。

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

Xcode screenshot of Images.xcassets

我试着打开一个新项目,并按照设置启动屏幕的相同步骤进行操作。

默认情况下,。Xib 被设置为“ Launch Screen File”,带有标签的白色屏幕在模拟器中确实显示了半秒钟。

然后,我创建一个“ Launch Images Source”,并将其设置为 Images.xcassets,它使用我添加到项目中的背景图片生成。(目前一切正常)

重新运行模拟器,发射图像没有显示..。

在从顶部菜单中删除指定的“ Launch Screen File”和 Clean: Product-> Clean 之后,启动图像最终显示出来。

也许这会有帮助?

因此,对于一些本应微不足道的事情来说,这是相当痛苦的。我是这样做的:

使用 xcassets

我决定用。Xcassets 和。准备发射。我删除了。西布。如果您的项目中已经有 images.xcassets,那么很好,否则您可以从 File > New > File 中添加一个:

AddNewASsetCatalog

创建启动图像集

现在,至少在您的。在导航器区域右键单击 xcassets 文件。

Add new Launch image and app icon

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

然后,我确保“应用程序图标和图像集”在我的目标是如下。

非常重要: 确保“启动屏幕文件”设置为空白。

Apps icon and image sets

添加图片

最后但并非最不重要的是,苹果用于设备选择的术语是令人困惑的。最初我认为,因为我只部署 iOS8(iPhone Portrait) ,我可以这样做,只是把 iPhone 6和 iPhone 6 + 的启动图片:

Devices

我很快意识到事情不是这样的,我得到了一个警告: “需要为 iOS7.0及更高版本提供 iPhone Retina (4英寸)的发布图像。”

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

因此,要找到右边的选项框,不要问这样的问题: 我的 iOS、设备和设备的最小方向是什么,而是要问:

有哪些设备可以支持我的最小 iOS?现在,这些设备支持的最低 iOS 是什么?确保你检查了所有的盒子。所以对我来说,我的目标是 iPhone5s,6和6 Plus 在8.0版本,但是考虑到 iPhone5s 可以在7.0版本中存在,我还需要选中7.0框来显示图片占位符。换句话说,右边的(iOS)复选框显示了该设备可用的最低 iOS 版本,您需要单击它来显示图像占位符,并放置一个图像,而不管您是否正在部署这个 iOS 版本。

希望这对谁有帮助。

Adding all devices

enter image description here

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

  1. 文件 > > 新建文件 > > 用户界面 > > 启动屏幕
  2. 在 YourApp-Info. plist 中创建新键/值: “ Launch Screen interface file base Name”/“ Your Launch Screen Name”

一张图片胜过千言万语,请看下面:

File>>New File>> User Interface >> Launch Screen

Create new key/value "Launch screen interface file base name"/"Your Launch Screen Name" in YourApp-Info.plist

我在我的景观专用应用程序中也遇到了这个问题,下面是 carlodurso 的解决方案:

  1. 在「景观」方格内打勾
  2. 将图像拖放到该位置。

我的解决方案是创建所有的发射图像。 enter image description here

然后,我将 Launch Images Source 设置为 LaunchImage 资产,并将启动屏幕文件保留为空白。

最后,如果项目没有 Launch Screen.xib,那么添加该文件并保持原样。 enter image description here

按照光谱328的回答:

尝试取消选中 iOS7和更高版本的框,并在资产目录中选中 iOS6和以前的框。IOS7发布图像似乎有一个 bug。 (除了320x480之外,两者都有相同的发射图像)

希望这个对你有帮助,它确实对我有帮助!

根据我的经验,LaunchScreen.xib和信息值 Launch screen interface file base name都是在创建项目时创建的占位符。如果您希望将 Images.xcassets专门用于启动屏幕,请删除 LaunchScreen.xibinfo.plist项。

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

有一个文件“ LaunchScreen.xib”自动添加到您的项目中 删除它将使 xCode 在 Images.xcassets 中使用默认映像

编辑添加 进入应用程序图标和启动图像 启动屏幕文件应该是空的/空的

我在资产目录中设置了“ LaunchImage”,并简单地清除了“ Launch Screen”字段,瞧!我让发射图像显示..。

从 Info.plist 文件中删除“ Launch screen interface file base name”,然后删除“ Launch Screen.xib”,这对我来说很有效。

一种方法是添加 “发射屏幕”(LaunchScreen.xib) ,粘贴图像到 UIImageView,然后设置为“ 集装箱水平中心”和“ 集装箱垂直中心”在 “对齐”,如果你使用自动布局。

屏幕: Http://i.stack.imgur.com/cfnht.png

不要忘记将 LaunchScreen.xib放入“启动屏幕文件”。

我有一只很奇怪的虫子。显然,我的启动映像源只是为了调试配置而设置的,并没有发布。这导致在运行调试配置时出现启动屏幕,但是当我更改为发布时,我只得到了一个黑屏。

当我改变我的构建配置以释放出现的 Launch Image Source 按钮时,我必须再次选择 Use Asset Catalog。

对于那些好奇的人,这是我的 project. pbxproj 的样子。

...
...
...
XXXXXXXXXXXXXXXXXXXXXXXX /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; <---THIS LINE WAS MISSING
...
...
...

存在一个 bug,Xcode 6启动存储在资产文件中的图像导致 iOS7/iOS8上只有 iphone 横向应用程序显示黑色启动图像。IPad 很好用。

Http://www.raywenderlich.com/forums/viewtopic.php?f=2&t=10868

解决方案: 在 ios8 + 以上版本中使用新的 Launchscreen. xib (它要好得多)

对于 ios7设备的工作,您只需关闭启动图像源,并使用老学校启动图像文件名中的列表

iphone5 - Default-568h@2x.png
iphone4s - Default@2x.png
ipad2 - Default-Landscape~ipad.png
ipad retina - Default-Landscape@2x~ipad.png

很痛苦,但很有效。 B
enter image description here

对于那些使用 Asset Catalog's Launch Image的人来说,正如我所知道的最困难的方法,我有这样一个场景: 我首先得到一个 jpg文件,然后我要求他们将其转换成 PNG

我非常信任他们,所以我首先在互联网上搜索了发射图像为什么没有显示,并且做了所有的解决方案,但都没有用,然后我试着把旧的发射图像放回去,并且运行良好,在那里我认为我所拥有的不是一个正确的 PNG文件。

确保您使用的是正确的 PNG 文件,而不是带有重命名扩展名的文件。

在开始使用 Xcode 6.1并更改启动程序映像之后,我也遇到了同样的问题。我把所有图片都放在资产目录里了。 我只会得到一个黑色的屏幕,而不是预期的静态图像。在尝试了这么多事情之后,我意识到问题在于资产目录在其 Filespector 视图中勾选了项目“目标成员”。点击“ ON”就像变魔术一样,图像开始出现在应用程序启动时。

  • 请确保您的图像是准确的大小根据苹果的指导方针。
  • 确保只选择一个选项,要么启动屏幕文件,要么启动图像源。您可以在“项目生成设置”-> “常规”中找到这两个选项

我的建议是选择启动图像源作为图像。资产。在 Image.asset 文件夹中创建醒目图像资产。

正确配置的参考图像: enter image description here

出于某种原因,我不得不将资产目录位置更改为“相对于项目”,以使其工作。

我也从我的手机上删除了这个应用程序并重新安装了它,但可能是“相对于项目”做到了这一点。

* (Xcode 7.2/部署目标7.0/景观方向) *

我知道这是一个老问题,但是在 Xcode 7.2中,我仍然得到了这个信息,我修正了这个问题:

1)选择人像及两种景观,加入「启动影像来源」及「启动画面档案」

enter image description here

2)在你的发布图片中选择 iPhone“8.0及稍后版本”和“7.0及稍后版本”。

enter image description here

3)在应用程序代理中添加以下代码:

#if __IPHONE_OS_VERSION_MAX_ALLOWED < 90000
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
}
#else
- (UIInterfaceOrientationMask)application:(UIApplication *)application     supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
return (UIInterfaceOrientationMaskLandscape);
}
#endif

4)在 ViewController 上添加这个

#if __IPHONE_OS_VERSION_MAX_ALLOWED < 90000
- (NSUInteger)supportedInterfaceOrientations
#else
- (UIInterfaceOrientationMask)supportedInterfaceOrientations
#endif
{
return UIInterfaceOrientationMaskLandscape;
}

我希望能帮助别人。

对我来说,它工作时,我删除 LaunchScreen.xib和改变它的故事板文件 LaunchScreen.storyboard

Xcode 8:

将 LaunchScreen.xib 不应该是中使用的图像放在. xcassets 上,尝试将它们放到捆绑包中。

在加载. xib 时,. xcassets 中的映像似乎还不可用。

编辑: 由于一些不透明的原因,在添加了一些本地化之后,启动屏幕停止工作,现在它与一个来自资产的图像一起工作,非常奇怪。

对我来说,当我卸载应用程序,然后重新启动模拟器时,它工作了。 再次安装时,启动映像如期出现。 这也适用于实际的设备。

这招对我很管用。单击 LaunchScreen.storboard,然后在右面板中可以选中“ Is InitialView Controller”复选框。

Storboard-> 是初始视图控制器

公认答案的问题在于 如果你没有设置启动屏幕文件,你的应用程序将处于升级模式,比如 iPhone 6 & 6 + = > 模糊渲染。

下面是我为了在每个设备上都有一个完整的工作解决方案(我的目标是 iOS 7.1和使用 Xcode 8)所做的工作(真的,我对这个升级问题越来越着迷了)

1. 准备你的.xcassets

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

  • 将启动屏幕图像(或矢量文件)添加到项目中
  • 转到.xcassets 并创建一个 新图像集。在 Image 的 Attritribute 窗口中,选择 比例尺-> 单一比例尺
  • 拖放 Image Set 中的矢量文件。

Create an Image Set for your .xcassets

2. 创建启动屏幕文件

Create a Launch Screen file

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

  • 将图像视图对象添加到启动屏幕文件(删除自动创建的标签)。这个图像视图应该参考以前的 . xcassets 图像集。您可以从 姓名属性引用它。在这个阶段,您应该在您的图像视图中正确地看到您的启动屏幕图像。
  • 为此图像视图添加约束,以根据屏幕分辨率保持高宽比。

Add the splash screen image to your Launch Screen file

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

最后,在“目标常规”属性中,引用“启动屏幕”文件。 Target Properties and Launch Screen

启动你的应用程序,你的启动画面就会显示出来。也可以尝试使用 iPhone6和 iPhone6 + ,您的应用程序应该能够正确显示,而不需要进行任何升级(Launch Screen 文件旨在做到这一点)。

我刚想明白。我的启动图像没有显示,当我在设备(iPhone6,7 +)或 testFlight 上启动时,我得到一个白色屏幕。修正: 将“ Lending _ screen. png”重命名为“ Lending _ screen”删除。PNG 部分。Xcode 的图像图标改为白色图标,在启动屏幕故事板中,图像现在显示为一个问号。现在出现的是 Launch 图像,而不是白色屏幕。我的安装程序: 我使用 Swift 3.1和 Xcode 8.3.1。在 LaunchScreen.storboard 中,我添加了一个简单的图像视图,并拉伸图像以适应视图控制器。我将自动布局约束顶部/底部/前导/尾随空间设置为0。

我什么都试过了,但是解决方法非常简单。用就是了。用 jpg 文件代替。在你的启动屏幕上。故事板。看起来 iOS 不会渲染。Png 文件或相对较大的图像大小在启动屏幕。

简单地删除和重新安装应用程序对我来说很有效:

  • 模拟器测试

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

  • 器件测试

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

如果您已经改变了您的发射图像从一个以前的图像,并观察到以下情况:

  • 设备/模拟器的应用程序以前安装,仍然显示以前的图像和拒绝显示新的(卸载和重新安装应用程序没有帮助)
  • 设备/模拟器,其中应用程序以前没有安装,显示新的启动映像

这可能是由于 iOS 对发射镜像进行了缓存,重新启动设备应该可以解决这个问题。