我想使用Xcode 6.0.1构建的应用程序中显示一个简单的启动屏幕。
我以两种方式添加了启动屏幕:作为XIB(默认名称,LaunchScreen.xib)和作为xcassets中的启动图像集。
我已经确保将我的“启动屏幕文件”设置为LaunchScreen.xib。
我已经模拟了所有可用的设备(例如“ iPhone5 iOS8” /“ iPhone5s iOS8” /“ iPhone6 iOS8”。请注意,模拟器中仅提供iOS 8)。
我想使用Xcode 6.0.1构建的应用程序中显示一个简单的启动屏幕。
我以两种方式添加了启动屏幕:作为XIB(默认名称,LaunchScreen.xib)和作为xcassets中的启动图像集。
我已经确保将我的“启动屏幕文件”设置为LaunchScreen.xib。
我已经模拟了所有可用的设备(例如“ iPhone5 iOS8” /“ iPhone5s iOS8” /“ iPhone6 iOS8”。请注意,模拟器中仅提供iOS 8)。
Answers:
因此,对于一些琐碎的事情而言,这已经非常痛苦。这是我所做的:
使用xcassets
我决定使用.xcassets与.xib进行启动。我删除了.xib。如果您的项目中已经有images.xcassets,那就太好了,否则可以从File> New> file添加一个:
创建启动映像集
现在,通过右键单击导航器区域,至少在.xcassets文件中创建启动图像集和图标集。
更新应用程序图标并启动图像设置
然后,确保目标中的“应用程序图标和图像集”如下所示。
非常重要:确保“启动屏幕文件”设置为空白。
添加图像
最后但并非最不重要的一点是,Apple用于设备选择的术语令人困惑。最初我以为,由于我仅针对iOS8(iPhone Portrait)进行部署,因此可以做到这一点,只需放入iPhone 6和iPhone 6+启动图像即可:
我很快意识到这不是这种方式,并且我收到警告:“需要iOS 7.0及更高版本的iPhone Retina(4英寸)启动映像。”
因此,我还必须选择iOS 7.0及更高版本下的iPhone,并为iPhone 5s添加图片。
因此,要找出要在右侧选中的框,请不要提出以下问题:我的最低iOS和设备以及设备和设备方向是多少?
哪些设备可以支持我的最低iOS?现在,这些设备支持的最低iOS是多少?并确保选中所有这些框。因此,对我来说,我的目标是8.0上的iPhone 5s,6和6 Plus,但是鉴于iPhone 5s可以与7.0一起存在,我还需要选中7.0框以显示图像占位符。换句话说,右侧的(iOS)复选框会显示该设备可用的最低iOS版本,并且您需要单击它以显示图像占位符并放置图像,无论您是否以该iOS版本进行部署。
希望这对某人有帮助。
根据我的经验,LaunchScreen.xib
和信息值Launch screen interface file base name
都是在创建项目时创建的占位符。如果您想Images.xcassets
仅在启动屏幕上使用,请同时删除LaunchScreen.xib
和info.plist
项。
如果您提供info.plist
设置,则您的应用将使用xib
而不是您的Images.xcassets
Xcode 8:
LaunchScreen.xib中使用的图像不应位于.xcassets上,请尝试将其放入捆绑包中。
看起来在.xib加载时,.xcassets中的图像尚不可用。
编辑:添加一些本地化后,由于某些不透明的原因,启动屏幕停止工作,现在它可以处理资产中的图像,这很奇怪。
/Library/Caches/Snapshots/<<app_bundle>>/
,在加载支持文件(包括自定义字体和资产目录)之前完成。
我的解决方案是创建所有启动映像。
然后,将启动图像源设置为LaunchImage资产,并将启动屏幕文件保留为空白。
最后,如果项目没有Launch Screen.xib,则添加该文件并将其保留。
对我来说,当我卸载应用程序然后重新启动模拟器时,它可以正常工作。再次安装后,启动映像将按预期出现。这也适用于实际设备。
对于正在使用的人Asset Catalog's Launch Image
,据我所知,这是最难的方法,我遇到了这种情况:首先给jpg
我一个文件,然后让他们将其转换为PNG
。
我对他们的信任度很高,因此我首先在互联网上搜索了为什么没有显示启动映像,并且没有采取所有解决方案,但都无济于事,然后我尝试放回旧的启动映像并运行良好,在那里,我以为我PNG
档案不正确。
TL; DR: 请确保您实际上使用的是正确的PNG文件,而不是具有扩展名的文件。
从Info.plist文件中删除“启动屏幕界面文件的基本名称”并删除“启动Screen.xib”对我来说很有效。
只需删除并重新安装该应用程序即可为我工作:
可接受答案的问题在于,如果您未设置启动屏幕文件,则您的应用程序将在iPhone 6&6+ =>模糊渲染等设备上处于升级模式。
下面是我在每个设备上都拥有完整的工作解决方案(我的目标是iOS 7.1和使用Xcode 8)的做法(确实,我对这个升级问题感到疯狂)
1.准备您的.xcassets
为了简化它,我使用矢量.PDF文件。这非常方便,并且避免为每种分辨率(1x,2x,3x ...)创建多个图像。我还假设您已经在其中创建了xcassets。
2.创建启动屏幕文件
3.将图像添加到启动屏幕文件
4.将启动屏幕文件添加到目标
启动您的应用程序,并显示初始屏幕。在iPhone6和iPhone6 +上也尝试一下,并且您的应用程序应正确显示而无需任何升级(启动屏幕文件旨在实现这一目的)。
存在一个错误,即存储在资产文件中的Xcode 6启动图像会导致iOS7 / iOS8上只有iPhone横向应用程序显示黑色启动图像。iPad工作正常。
http://www.raywenderlich.com/forums/viewtopic.php?f=2&t=10868
解决方案:从ios8 +开始使用新的Launchscreen.xib。(好多了)
为了使ios7设备正常工作,您只需关闭启动图像源并使用plist中的旧式启动图像文件名
iphone5 - Default-568h@2x.png
iphone4s - Default@2x.png
ipad2 - Default-Landscape~ipad.png
ipad retina - Default-Landscape@2x~ipad.png
我已经尝试了所有方法,但是解决方案非常简单。只需在LaunchScreen.storyboard上使用.jpg文件而不是.png。似乎iOS在启动屏幕上不呈现.png文件或图像尺寸相对较大。
我在资产目录中设置了“ LaunchImage”,并清除了“ Launch Screen”字段等等。我有启动图像出现...
一种方法是添加“启动屏幕”(LaunchScreen.xib
),将图像粘贴到其中UIImageView
,然后在使用“自动布局”的情况下将其设置为“ 容器中的水平中心 ”和“对齐”中的“ 容器中的垂直中心 ” 。
屏幕:http: //i.stack.imgur.com/CfnHT.png
不要忘记将其LaunchScreen.xib
放入“启动屏幕文件”。
我尝试打开一个新项目,然后执行与设置启动屏幕相同的步骤。
默认情况下,.xib设置为“启动屏幕文件”,并且带有标签的白屏确实在模拟器中显示了半秒钟。
然后,我将“启动图像源”并将其设置为Images.xcassets,该图像是使用添加到项目中的背景图像生成的。(到目前为止一切都很好)
重新运行模拟器,启动图像不显示...
删除指定的“启动屏幕文件”并清除后:Product-> Clean,从顶部菜单中最终显示启动图像。
也许会有帮助吗?
我有一个非常奇怪的错误。显然,我的启动映像源仅设置用于调试配置,而没有发布。这导致我的启动屏幕在运行调试配置时出现,但是当我更改为发行版时,我只有一个黑屏。
我更改了构建配置以释放出现“启动映像源”按钮时已解决此问题,然后不得不再次选择“使用资产目录”。
对于那些好奇的人,这就是我的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
...
...
...
*(Xcode 7.2 /部署目标7.0 /仅横向)*
我知道这是一个老问题,但是使用Xcode 7.2时,我仍然收到消息,并对此进行了修复:
1)选择人像和两个风景。添加“启动图像源”和“启动屏幕文件”
2)在启动图像中,选择iPhone“ 8.0及更高版本”和“ 7.0及更高版本”。
3)在您的appDelegate中添加以下代码:
#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.storyboard,然后在右侧面板中选择“是初始视图控制器”复选框。
LaunchScreen.storyboard->是初始视图控制器