iOS初始屏幕持续时间(Default.png)

即时通讯使用Default.png文件为我的iPad应用程序。 它看起来是正确的,但我不能find一种方法来修改启animation面的持续时间。 有人有什么build议? 谷歌有许多网站,展示如何设置启animation面,但无法find我的问题的解决scheme。

初始屏幕的人机界面准则的第一条规则是:不要使用启animation面。 第二条规则是:不要使用闪屏!

提供启动图像以改善用户体验。

避免使用启动图像作为机会来提供:

“应用程序入门体验”,如启animation面

关于窗口

品牌元素,除非它们是应用程序第一个屏幕的静态部分

如果你绝对必须包含一个长时间的启animation面,并且有足够的理由这样做,通常的方法是抛出一个UIImageView包含你的启动图像的副本,例如, application:didFinishLaunchingWithOptions: – 应该提供一个漫长的启animation面的错觉。

但请不要。

使用“启animation面”(标志等)不是Default.png的想法!

从苹果阅读HIG 。

(飞溅)屏幕(名为加载屏幕)不适用于徽标显示或类似的东西。 启用多任务时,“启animation面”显示非常罕见。 启animation面应该像苹果应用程序一样,只显示在第一个应用程序屏幕上出现的界面,而没有任何本地化的string等。

另外请记住:iOS设备越快,您可以看到Default.png越短。 所以请避免将其用于任何重要的CI / CD内容。

默认图片在应用程序加载时显示,一旦应用程序准备就会被解散。 而且没有API来控制这个持续时间。

您不能从技术上修改“默认”图像在此处的持续时间; 它被devise成仅仅是临时图像“预示”实际启动的应用程序,而不是专门devise为启animation面。

我build议您在应用程序启动时在应用程序中启动应用程序:didFinishLaunchingWithOptions:方法,通过向屏幕添加图像视图来保持“初始屏幕效果”。 然后,您可以设置一个计时器,调用一个方法在指定的时间之后closures飞溅。 它会在那里超过你指定的时间,这取决于应用程序加载的实际时间,但是它会给你以后的效果。

您可以将图像视图的图像设置为[UIImage imageNamed:@“Default”],它将为您访问该默认图像。

你不能改变持续时间。 如果您希望显示的时间更长,则可以将相同的图像添加到您在加载数据时显示的视图!

在这里有一个很好的博客文章,介绍如何使用带有定时器的UIImageView创build启animation面:

http://nullpointr.wordpress.com/2012/02/19/iphone-dev-how-to-implement-a-splash-screen/

对初学者很有用,他们仍然在学习iOS中最好的方法。

正如@Conrad Shultz回答的那样,启动屏幕只能通过Xcode提供的LaunchScreen.storyboard文件来使用。

但是,在极less数情况下,您确实想要延长启动屏幕:

  • 在应用程序启动之前下载许多文件,因为应用程序依赖于它们。
  • 其他原因…

这是做到这一点的方法:

AppDelegate ,在didFinishLaunchingWithOptions下你应该:

  1. 创build一个具有相同的飞溅图像和相同约束的VC
  2. 目前它
  3. 在给定的时间后closures它

代码:

 let splashVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "splash") window?.makeKeyAndVisible() if let root = window?.rootViewController { root.present(splashVC, animated: false, completion: nil) let dispatchTime = DispatchTime.now() + 3 // didFinishLaunchingWithOptions will return and this block will be executed afterwards, hence, async.. DispatchQueue.main.asyncAfter(deadline: dispatchTime, execute: { root.presentedViewController?.dismiss(animated: false, completion: nil) }) } }