通过Xcode自带LaunchScreen布局文件自定义启动动画
2016-07-09 11:41
417 查看
大晚上刷微博,刷到一篇转发自 里脊串 的博客 Tips:获取APP的Launch
Image
大致内容是:通过获取打包到
PS:今年开发的
教程看的云里雾里的,不过不打紧,思路还是一样的,我想如果
这种方式的好处就是,获取大小就是屏幕的大小,而且只要你把不同屏幕的布局搞定了,系统会帮你生成好加在的启动页,这样就免去了判断和从新设置大小的麻烦,这样才是真适配嘛~
废话不多说,上代码吧~
(对了,记得给
此代码片段,如果应用启动初始化如果是代码可以在AppDelegate加,Storyboard加载方式需要加在ViewController里。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201607/7bc122d1da7fc915329e9c54dd72bcd4.gif)
2015.11.27
最近项目UI框架切换到
系统没法知道该怎么显示,所以只能放到
分享
收藏
纠错
![](https://oscdn.geek-share.com/Uploads/Images/Content/201607/1e3e5fa18757ffcf4d360fd5e54bb91b.jpg)
推荐文章
1. [iOS] BarcodeScanner:二维码扫描、识别控制组件
2. [iOS] WSTagsField:可定制、易用的标签文本框输入组件
3. 自己动手实现 Pokemon Go 锁区破解 —— 记一次重签名
4. iOS 狂霸酷炫拽之Button动效
5. [iOS] BentoMap:四叉树算法实现地图目标快速标记类库及演示
6. iOS-最全的App上架教程
相关推刊
Image
大致内容是:通过获取打包到
App里的启动图,初始化一个
UIImageView与屏幕同等大小再加载到
UIWindow上来做启动延时,从而达到自定义启动动画的目的。代码里的各种
Key没太看懂,放到工程里也没法显示效果。文中的意思是不要增加启动图的方式来适配,那我想了想
iOS启动画面的方式目前我所知就两种:启动图和布局文件。我现在基本上没有用图片作为启动图,都是直接用布局文件搞定。
PS:今年开发的
App基本上都是支持
iOS7以上了,所以没太用启动图了,
Xcode 6是
LaunchScreen.xib,到
Xcode 7变成了
LaunchScreen.storyboard,无可厚非,两者本质都是一样的。
教程看的云里雾里的,不过不打紧,思路还是一样的,我想如果
Storyboard和
Size Class玩得多同学还是喜欢布局文件作为启动图的方式吧,所以我的方式是获取
LaunchScreen.storyboard里的
ViewController,在把
View提取出来加到
UIWindow显示做动画即可。
这种方式的好处就是,获取大小就是屏幕的大小,而且只要你把不同屏幕的布局搞定了,系统会帮你生成好加在的启动页,这样就免去了判断和从新设置大小的麻烦,这样才是真适配嘛~
废话不多说,上代码吧~
(对了,记得给
LaunchScreen.storyboard里的
ViewController设置好
Storyboard ID)
UIViewController *viewController = [[UIStoryboard storyboardWithName:@"LaunchScreen" bundle:nil] instantiateViewControllerWithIdentifier:@"LaunchScreen"]; UIView *launchView = viewController.view; AppDelegate *delegate = [UIApplication sharedApplication].delegate; UIWindow *mainWindow = delegate.window; [mainWindow addSubview:launchView]; [UIView animateWithDuration:2.0f delay:0.0f options:UIViewAnimationOptionBeginFromCurrentState animations:^{ launchView.alpha = 0.0f; launchView.layer.transform = CATransform3DScale(CATransform3DIdentity, 1.3f, 1.3f, 1.0f); } completion:^(BOOL finished) { [launchView removeFromSuperview]; }];
此代码片段,如果应用启动初始化如果是代码可以在AppDelegate加,Storyboard加载方式需要加在ViewController里。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201607/7bc122d1da7fc915329e9c54dd72bcd4.gif)
2015.11.27
最近项目UI框架切换到
UITabBarController,发现这个动画没法使用,是由于如果在
Storyboard中使用
UITabBarController,如果做启动登录需求,肯定是按需加载,就需要自建继承自
UITabBarController的关联,如果在
- (void)viewDidLoad里加载就会导致如下警告:
Warning: Attempt to present <HXLoginViewController: 0x7fa5a063cca0> on <HXMainViewController: 0x7fa5a05ae0b0> whose view is not in the window hierarchy!**
系统没法知道该怎么显示,所以只能放到
- (void)viewDidAppear:(BOOL)animated里来做,
UITabBarController框架加载这个动画没效果也是这个原因,但是没Debug警告,不过要注意,如果只是单纯使用这个动画没啥问题,但是如果在
UITabBarController上用
模态视图的方式做按需加载以及转场动画需要处理
- (void)viewDidAppear:(BOOL)animated重复调用的问题。
分享
收藏
纠错
![](https://oscdn.geek-share.com/Uploads/Images/Content/201607/1e3e5fa18757ffcf4d360fd5e54bb91b.jpg)
推荐文章
1. [iOS] BarcodeScanner:二维码扫描、识别控制组件
2. [iOS] WSTagsField:可定制、易用的标签文本框输入组件
3. 自己动手实现 Pokemon Go 锁区破解 —— 记一次重签名
4. iOS 狂霸酷炫拽之Button动效
5. [iOS] BentoMap:四叉树算法实现地图目标快速标记类库及演示
6. iOS-最全的App上架教程
相关推刊
相关文章推荐
- Apple Swift学习教程
- 介绍 Fedora 上的 Swift
- Swift中实现点击、双击、捏、旋转、拖动、划动、长按手势的类和方法介绍
- Swift自定义iOS中的TabBarController并为其添加动画
- Swift编程中的泛型解析
- Swift中定义二维数组的方法及遍历方法示例
- Swift实现Selection Sort选择排序算法的实例讲解
- 简单分析Swift语言的一些基本特征
- 使用 Swift 语言编写 Android 应用入门
- 理解二叉堆数据结构及Swift的堆排序算法实现示例
- Swift与C语言指针结合使用实例
- Swift心得笔记之控制流
- 用Swift构建一个简单的iOS邮件应用的方法
- 苹果公司推出的新编程语言Swift简介和入门教程
- Swift实现iOS应用中短信验证码倒计时功能的实例分享
- 使用Swift代码实现iOS手势解锁、指纹解锁实例详解
- 探讨Swift数组和字典
- Swift中的指针操作和使用详细介绍
- 详解Swift中的数据类型类型转换