我希望在我的应用程序中显示一个简单的启动屏幕,使用Xcode 6.0.1构建。
我以两种方式添加了一个启动屏幕:作为XIB(使用默认名称,LaunchScreen.xib)和作为xcassets中的launchimage设置。
我已确保将“启动屏幕文件”设置为LaunchScreen.xib。
我已经模拟了所有可用的设备(例如,“iPhone5 iOS8”/“iPhone5s iOS8”/“iPhone6 iOS8”。请注意,模拟器中只有iOS 8可用)。
所以这对于一些应该是微不足道的事情来说是非常痛苦的。这是我做的:
使用xcassets
我决定使用.xcassets而不是.xib来启动。我删除了.xib。如果你的项目中已有images.xcassets,那么你可以在File> New> file中添加一个:
创建启动映像集
现在,通过右键单击导航器区域,至少在.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版本上进行部署。
希望这有助于某人。
经过几个小时的沮丧,我决定用这种方式。它适用于iPhone和iPad(在Xcode 6.1上)
- 文件>>新文件>>用户界面>>启动屏幕
- 在YourApp-Info.plist中创建新的键/值:“启动屏幕界面文件基本名称”/“您的启动屏幕名称”
1张图片价值超过千字。请看下面:
有一个错误,Xcode 6启动存储在资产文件中的图像会导致iOS7 / iOS8上仅iphone风景应用程序显示黑色启动图像。 iPad工作正常。
解决方案:使用新的Launchscreen.xib for ios8 +。 (它好得多)
要使ios7设备正常工作,您只需关闭启动图像源并使用plist中的旧学校启动图像文件名
http://www.raywenderlich.com/forums/viewtopic.php?f=2&t=10868
痛苦但有效。乙
iphone5 - [email protected]
iphone4s - [email protected]
ipad2 - Default-Landscape~ipad.png
ipad retina - Default-Landscape@2x~ipad.png
我尝试了一切,但解决方案非常简单。只需在LaunchScreen.storyboard上使用.jpg文件而不是.png。看起来iOS在启动屏幕上不会渲染.png文件或相对较大的图像大小。
做什么Spectravideo328回答和:
尝试UNCHECK iOS 7及更高版本框并检查资产目录中的iOS 6和之前的框。 iOS 7 Launch Image似乎存在错误。 (除了320x480之外,它们都具有相同的启动图像)
希望这有帮助,它对我有帮助!
我在我的资产目录中设置了“LaunchImage”并简单地清除了“启动屏幕”字段等等!我有发射图像出现......
一种方法是添加“启动屏幕”(),将图像粘贴到LaunchScreen.xib
,然后如果使用自动布局,则将其设置为“容器中的水平中心”和“对齐”中的“容器中的垂直中心”。
屏幕:UIImageView
不要忘记将http://i.stack.imgur.com/CfnHT.png放入“启动屏幕文件”。
在我开始使用Xcode 6.1并更改了我的启动器图像后,我遇到了同样的问题。我在资产目录中拥有所有图像。我只会得到一个黑屏而不是预期的静态图像。在尝试了这么多东西后,我意识到问题是资产目录在其FileInspector视图中勾选了项目'目标成员资格'。 Tick it to ON魔术和图像开始出现在App发布上。
我的建议是选择Launch Image Source作为Image.Assets。在Image.assests文件夹中创建启动图像资源。
正确配置的参考图像:LaunchScreen.xib
我尝试打开一个新项目,然后按照您设置启动屏幕的相同步骤进行操作。
默认情况下,.xib设置为“启动屏幕文件”,带有标签的白色屏幕在模拟器中显示半秒钟。
然后我将“启动图像源”并将其设置为Images.xcassets,该图像使用我添加到项目中的背景图像生成。 (到目前为止一切都很好)
重新运行模拟器并且启动图像不显示...
删除指定的“启动屏幕文件”并清除:产品 - >清洁后,从顶部菜单中最终显示启动图像。
也许这会有所帮助?
根据我的经验,LaunchScreen.xib
和信息值Launch screen interface file base name
都是在创建项目时创建的占位符。如果您想专门为启动屏幕使用Images.xcassets
,请删除LaunchScreen.xib
和info.plist
项目。
如果你提供info.plist
设置,你的应用程序将使用xib
而不是你的Images.xcassets
文件“LaunchScreen.xib”会自动添加到您的项目中删除此项会将xCode转换为使用Images.xcassets中的默认图像
编辑添加转到应用程序图标和启动图像启动屏幕文件应为空/ emtpy
出于某种原因,我不得不将资产目录位置更改为“相对于项目”以使其工作。
我还从手机中删除了应用程序并重新安装,但它可能是“相对于项目”而已。
*(仅限Xcode 7.2 /部署目标7.0 /横向方向)*
我知道这是一个老问题但是使用Xcode 7.2我仍然收到消息,我修复了这个问题:
1)选择PORTRAIT和两个风景。添加“启动图像源”和“启动屏幕文件”
...
...
...
XXXXXXXXXXXXXXXXXXXXXXXX /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; <---THIS LINE WAS MISSING
...
...
...
2)在启动映像中选择iPhone“8.0及更高版本”和“7.0及更高版本”。
3)在appDelegate中添加此代码:
4)在ViewController上添加它
#if __IPHONE_OS_VERSION_MAX_ALLOWED < 90000
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
}
#else
- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
return (UIInterfaceOrientationMaskLandscape);
}
#endif
我希望能帮助别人。
这对我有用。单击LaunchScreen.storyboard,然后在右侧面板中选择“是初始视图控制器”复选框。
LaunchScreen.storyboard - >是初始视图控制器
我刚想通了。我的启动图像没有显示,我在设备(iPhone 6,7 +)或testFlight上启动时会出现白屏。修复:将“Landing_screen.png”重命名为“Landing_screen”,删除.png部分。 Xcode中的图像图标更改为白色图标,并且在启动屏幕故事板中,图像现在显示为问号。现在出现启动图像,而不是白色屏幕。我的设置:我使用Swift 3.1和Xcode 8.3.1。在LaunchScreen.storyboard中,我添加了一个简单的图像视图并拉伸图像以适合视图控制器。我将自动布局约束Top / Bottom / Leading / Trailing space设置为superview为0。
如果您已从上一张图像更改了启动图像,请注意以下事项:
这很可能是因为iOS完成了启动图像的缓存。重新启动设备应该可以解决问题。
我的风景专用应用程序也遇到了这个错误。以下carlodurso的解决方案有效:
对我来说,当我删除#if __IPHONE_OS_VERSION_MAX_ALLOWED < 90000
- (NSUInteger)supportedInterfaceOrientations
#else
- (UIInterfaceOrientationMask)supportedInterfaceOrientations
#endif
{
return UIInterfaceOrientationMaskLandscape;
}
并将其更改为故事板文件LaunchScreen.xib
时,它可以正常工作。
Xcode 8:
LaunchScreen.xib中使用的图像不应位于.xcassets上,请尝试将它们放入捆绑包中。
看起来在.xib加载时,.xcassets中的图像尚不可用。
编辑:由于添加一些本地化后的一些不透明的原因,启动屏幕停止工作,现在它使用资产中的图像,非常奇怪。
我的解决方案是创建所有启动图像。
然后我将Launch Images Source设置为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.将启动屏幕文件添加到目标
最后,在Target General属性中,参考Launch Screen文件。 qazxsw poi
启动您的应用,应显示启动画面。也可以在iPhone6和iPhone6 +上试用,并且应该正确显示您的应用程序而不进行任何升级(启动屏幕文件旨在执行此操作)。
只需删除并重新安装该应用程序对我有用: