启动图像还是启动xib / storyboard?

23

我正在尝试完成我的第一个iOS应用程序并提交,但我在这里感到非常困惑。文档告诉我需要一个启动图像,并给出了iPhone 6和6+的尺寸,但在几个地方明确表示“必须有启动XIB或故事板来支持iPhone 6大小的应用程序。”

我非常困惑。如果我需要一个“启动故事板”,为什么要包含启动图像?我甚至还没弄清楚启动故事板是什么...


4
如果你的iOS版本低于8,启动XIB和启动Storyboard是无效的。如果你的部署目标低于iOS 8,你应该使用不同尺寸的启动图片。查看这个问题:https://dev59.com/9oXca4cB1Zd3GeqPNcla - wcd
3
那个问题也是我问的。 - temporary_user_name
1
哦,我没有注意到那个。不管怎样,你需要知道的是,只有在iOS 8及以上版本中才能启动xib/storyboard。如果你的应用程序针对的是iOS 8,那么你就不需要提供启动图像。有时候苹果文档会让人感到困惑。 - wcd
1
如果我要针对iOS6及以上版本进行开发,该怎么办? - temporary_user_name
1
唯一的选择是以不同分辨率启动图像。启动图像也适用于iOS 8。 - wcd
请注意,如果您将应用程序升级到iOS 8或更高版本,并希望从启动图片更改为启动故事板,则除了添加故事板外,还必须在“Targets -> App Icons and Launch Images -> Launch Screen file”中选择它。 - Reefwing
2个回答

17

如果您正在使用Xcode 6进行开发,且仅限于iOS 8,则应使用启动故事板,这样可以避免提供多个不同尺寸的启动图片。

当新建项目时,Xcode 6会自动生成此故事板,但您可能一直在使用旧的项目模板。

请参阅此处,了解如何使用Xcode 6创建启动故事板:http://oleb.net/blog/2014/08/replacing-launch-images-with-storyboards/

请注意,您也可以使用常规的“单一”XIB文件,而不是整个故事板。我认为Xcode 6项目模板会使用XIB文件来实现此目的。

不幸的是,如果您的应用程序还针对旧版本的iOS(即使是iOS 7),则除了为所有iPhone设备(iPhone 6除外,因为它显然无法运行这些iOS版本)包括启动图像之外,您将没有其他选择。这很麻烦,但苹果通过为未来开发提供此新功能而采取了正确的做法。


那么启动故事板就足以覆盖所有iPhone和iOS版本了吗? - temporary_user_name
不幸的是,并非所有的iOS版本都支持启动故事板。启动故事板是从iOS 8开始引入的新功能。如果你想要支持旧版本,你仍需要提供启动图片以适配iPhone 5S及以下设备。 - Romain
为了支持一切,我需要两者都有。唉。 - temporary_user_name
我已经更新了我的答案,使其更加清晰。祝你的启动图像顺利!看看这个工具,看看它是否有帮助:http://ticons.fokkezb.nl - Romain
我按照库(oleb.net)中的说明进行操作,但在设备上测试时,启动时出现黑屏 - 即使是对于新项目也是如此。launchscreen.storyboard需要viewcontroller代码吗? - mogoman
似乎是Xcode的一个bug https://forums.xamarin.com/discussion/38086/launchscreen-storyboard-appears-black - mogoman

2

根据您在 @Romain 回答下的评论,

所以为了支持一切,我需要两个。

不,如果您需要支持 所有情况,请使用启动图像。如果您的应用程序附带启动图像并使用它们来显示启动屏幕,则无需提供启动 xib/storyboard。一个应用程序只能使用一种方法来显示启动屏幕。


我不确定你是正确的。因为我读过xib lanuchimage是iOS 8中不缩放应用程序(在iPhone 6和6+上)的指示,所以你确实应该两者都做。 - Paweł Brewczynski
我只使用了启动图像。我的应用在不同的设备上都可以正常工作。你在哪里看到这个信息的?你有任何来源吗?@PaulBrewczynski - wcd
你确定它能正常工作并且没有缩放吗?引用:“重要提示:你需要使用一个launch XIB或storyboard文件来指示你的应用运行于iPhone 6 Plus或iPhone 6上。” https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/LaunchImages.html - Paweł Brewczynski
是的,我确定它没有被缩放,我绝对知道我在说什么。为什么不自己测试一下呢?@PaulBrewczynski - wcd
我在我的应用程序中同时使用两者,但iOS 8及以上版本将默认使用Storyboard。iOS 7及以下版本将使用图像。因此,如果您计划仅支持iOS 7及以上版本,则需要支持静态品牌资产(启动图像)@2x(640x960:Retina 3.5...运行iOS 7的iPhone 4/4s)和Retina 4(640x1136:运行iOS 7的iPhone 5)。所有其他设备/版本将使用LaunchScreen storyboard。 - Alejandro Iván
现在有一个原因,启动图像正在被弃用,并将在未来完全删除。 - Mike Flynn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接