我为我的 iPad 应用程序使用Default.png文件。它显示正确,但我找不到修改启动画面持续时间的方法。有人有什么建议吗?谷歌有许多网站展示了如何设置开始屏幕,但找不到解决我的问题的方法。
7 回答
启动画面的人机界面指南的第一条规则是:不要使用启动画面。第二条规则是:不要使用闪屏!:
提供启动图像以改善用户体验。
避免使用您的启动图像作为提供以下内容的机会:
“应用程序入口体验”,例如闪屏
关于窗口
品牌元素,除非它们是应用程序首屏的静态部分
如果您绝对必须包含一个长时间的启动画面,并且有充分的理由这样做,那么通常的方法是抛出一个UIImageView
包含您启动图像的副本,例如application:didFinishLaunchingWithOptions:
- 这应该提供一个冗长的启动画面的错觉屏幕。
但请不要。
使用“启动画面”(徽标等)不是 Default.png 的想法!
从 Apple读取HIG 。
(启动)屏幕(称为加载屏幕)不适用于徽标显示或类似的东西。启用多任务处理后,“启动画面”很少出现。启动屏幕应该像苹果应用程序一样,只显示第一个应用程序屏幕中出现的界面,没有任何本地化字符串等。
还要记住:iOS 设备的速度越快,您看到的 Default.png 就越短。因此,请避免将其用于任何重要的 CI/CD 内容。
默认图像在应用程序加载时显示,并在应用程序准备就绪后立即关闭。并且没有 API 可以控制该持续时间。
从技术上讲,您无法修改“默认”图像停留在那里的持续时间;它被设计为只是一个“预示”应用程序实际启动的临时图像,而不是专门设计为启动屏幕。
我建议您通过在 -application:didFinishLaunchingWithOptions: 方法中启动应用程序时向屏幕添加图像视图来保持“启动画面效果”。然后,您可以设置一个计时器,该计时器调用一种方法来在您希望的指定时间之后为飞溅设置动画。它会比您指定的时间长一点,具体取决于应用程序实际加载所需的时间,但它会产生您所追求的效果。
您可以将图像视图的图像设置为 [UIImage imageNamed:@"Default"],它将为您访问该默认图稿。
您无法更改持续时间。如果您希望它显示更长的时间,您可以将相同的图像添加到您在加载数据时显示的视图中!
这里有一篇很好的博客文章,介绍了如何使用UIImageView
带有计时器的 a 来创建启动画面:
http://nullpointr.wordpress.com/2012/02/19/iphone-dev-how-to-implement-a-splash-screen/
对于仍在学习在 iOS 中做事的最佳方式的初学者很有用。
正如@Conrad Shultz 回答的那样,启动画面只能通过LaunchScreen.storyboard
Xcode 提供的文件使用。
但是,在极少数情况下,您确实希望延长启动画面:
- 在应用程序启动之前下载大量文件,因为应用程序依赖于它们。
- 其他原因...
这是这样做的方法:
在里面AppDelegate
,didFinishLaunchingWithOptions
你应该:
- 创建具有相同初始图像和相同约束的 VC
- 呈现它
- 在给定时间后将其关闭
编码:
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)
})
}
}