如何在iOS App中添加启动画面

如何在iOS App中添加启动画面,第1张

iOS APP启动画面必须是静态图片。但是可以在

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

里面载入写着动画的view。在动画结束以后再进入程序。

只能通过这样的伪启动动画来做

一个简单的做法是 : 在主界面添加一层启动图层 , 在主界面初始加载的时候 , 是该启动图层显示 , 其它图层不显示 。 然后设置 补间动画 , 使启动图层 在1秒时间里从Alpha 1 ~ 0 然后在结束动画的时候 , 设置启动图层不显示 , 其它图层显示 。

在动画界面加一个 任务功能(e.g : 使数据、动画执行 等)在任务功能结束的时候 ,startActivity(intent) ,进入主界面 。 这里最好能再设置主界面的堆栈为 singleTask 。

应用启动时如果在Application中做了很多事务,会导致启动时有个白屏的时间,体验十分不好。通常的做法是给Application或者第一个启动的Activity的主题添加上android:windowBackground属性来优化体验。

到了Android 12,官方新增了SplashScreen Api,可为所有应用添加新的启动动画,显示速度十分实时,所以到了Android 12,我们就不必自己添加android:windowBackground属性,最重要的是它是能向下兼容的。

在Android 12上已经默认使用了SplashScreen,如果不考虑向下兼容的问题,不需要任何配置,系统就会自动使用App的图标作为SplashScreen的图标。

这个时候就需要一些适配 *** 作

注意的是必须是在第一个启动的Activity同目录的build.gradle中添加依赖

在Style.xml新建一个主题,parent必须为Theme.SplashScreen

windowSplashScreenBackground:启动动画的背景

windowSplashScreenAnimatedIcon:启动动画的图标

windowSplashScreenAnimationDuration:启动动画的时间

postSplashScreenTheme:启动动画退出后的启动页的主题

在setContentView()之前添加上installSplashScreen()即可

这里我用的是一台11的机器,可以看到效果基本上和12.0差不多,如果不去适配的话11的机器是看不到这个页面的(请忽略我自己做的图标)

可以看到适配很简单,另外可以看到installSplashScreen()是有返回值的,我们可以利用这个值去做一些更强大的事情,例如延长启动页面停留时间、设置动画效果等,这些大家自己去研究。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11614957.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存