最近在使用《青葱日记》这款App,发现它的启动界面做的很精美。

不同我自己之前简单的替换Default.png图片。 它的动态效果做的不错。

于是乎,花了点时间,自己实现了这个功能。 其实也很简单,具体效果如下

实现起来也不困难。因为我们知道,在应用启动的时候,它会先执行AppDelegate.m中的

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

执行完之后,才会进入视图。如果,我们在这个方法中加入一些动画,那么就会在动画执行完之后再进入我们的rootview。这就是实现原理。 很简单吧。

下面直接给出实现这一效果的源码,很简单。不多说废话(当然,实现方法很多。 我只是给出我自己的方法)

1.AppDelegate.h中声明一个UIImageView

@property (strong, nonatomic) UIImageView *splashView;

2.AppDelegate.m实现相关功能

@synthesize splashView;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{// Override point for customization after application launch.[self.window makeKeyAndVisible];splashView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 568)];[splashView setImage:[UIImage imageNamed:@"back_"]];[self.window addSubview:splashView];[self.window bringSubviewToFront:splashView];[self performSelector:@selector(scale_1) withObject:nil afterDelay:0.0f];[self performSelector:@selector(scale_2) withObject:nil afterDelay:0.5f];[self performSelector:@selector(scale_3) withObject:nil afterDelay:1.0f];[self performSelector:@selector(scale_4) withObject:nil afterDelay:1.5f];[self performSelector:@selector(scale_5) withObject:nil afterDelay:2.0f];[self performSelector:@selector(showWord) withObject:nil afterDelay:2.5f];return YES;
}-(void)scale_1
{UIImageView *round_1 = [[UIImageView alloc]initWithFrame:CGRectMake(100, 240, 15, 15)];round_1.image = [UIImage imageNamed:@"round_"];[splashView addSubview:round_1];[self setAnimation:round_1];
}-(void)scale_2
{UIImageView *round_2 = [[UIImageView alloc]initWithFrame:CGRectMake(105, 210, 20, 20)];round_2.image = [UIImage imageNamed:@"round_"];[splashView addSubview:round_2];[self setAnimation:round_2];
}-(void)scale_3
{UIImageView *round_3 = [[UIImageView alloc]initWithFrame:CGRectMake(125, 170, 30, 30)];round_3.image = [UIImage imageNamed:@"round_"];[splashView addSubview:round_3];[self setAnimation:round_3];
}-(void)scale_4
{UIImageView *round_4 = [[UIImageView alloc]initWithFrame:CGRectMake(160, 135, 40, 40)];round_4.image = [UIImage imageNamed:@"round_"];[splashView addSubview:round_4];[self setAnimation:round_4];
}-(void)scale_5
{UIImageView *heart_1 = [[UIImageView alloc]initWithFrame:CGRectMake(130, 180, 100, 100)];heart_1.image = [UIImage imageNamed:@"heart_"];[splashView addSubview:heart_1];[self setAnimation:heart_1];
}-(void)setAnimation:(UIImageView *)nowView
{[UIView animateWithDuration:0.6f delay:0.0f options:UIViewAnimationOptionCurveLinearanimations:^{// 执行的动画code[nowView setFrame:CGRectMake(nowView.frame.origin.x- nowView.frame.size.width*0.1, nowView.frame.origin.y-nowView.frame.size.height*0.1, nowView.frame.size.width*1.2, nowView.frame.size.height*1.2)];}completion:^(BOOL finished){// 完成后执行code[nowView removeFromSuperview];}];}-(void)showWord
{UIImageView *word_ = [[UIImageView alloc]initWithFrame:CGRectMake(75, 440, 170, 29)];word_.image = [UIImage imageNamed:@"word_"];[splashView addSubview:word_];word_.alpha = 0.0;[UIView animateWithDuration:1.0f delay:0.0f options:UIViewAnimationOptionCurveLinearanimations:^{word_.alpha = 1.0;}completion:^(BOOL finished){// 完成后执行code[NSThread sleepForTimeInterval:1.0f];[splashView removeFromSuperview];}];
}

学习的路上,与君共勉。

iOS开发- 启动动画(动态欢迎界面,非静态Default)相关推荐

  1. 机械原理动图结构设计原理图动画动态传动机构演示非标资料

    2万个机械原理动图结构设计原理图动画动态传动机构演示非标资料 tao

  2. 2万个机械原理动图结构设计原理图动画动态传动机构演示非标资料

    2万个机械原理动图结构设计原理图动画动态传动机构演示非标资料 tao

  3. iOS 开发之动画篇 - 从 UIView 动画说起

    毋庸置疑的:在iOS开发中,制作动画效果是最让开发者享受的环节之一.一个设计严谨.精细的动画效果能给用户耳目一新的效果,吸引他们的眼光 -- 这对于app而言是非常重要的. 本文作为动画文集的第一篇, ...

  4. ios开发学习--动画(Animation)效果源码分享--系列教程1

    Genie View        介绍: 实现所谓的genie effect.即点击最小化或删除按钮,视图会被吸进某个地方.         http://ios.itmdc.com/forum.p ...

  5. 修改linux内核启动动画,Android 开机界面及Linux内核启动界面的修改(tiny6410)

    第一开机界面替换,即内核bootloader启动小企鹅界面更换 1.首先找一个自定义120*120的png图像,这里名称linux.png,但是后面的ppm名称必须是图中所示 在linux下执行下面代 ...

  6. iOS 开发之动画篇 - Transform和KeyFrame动画

    原文发布于http://www.jianshu.com/p/a071bba99a1b 序言 追求美好是人的天性,这是猿们无法避免的.我们总是追求更为酷炫的实现,如果足够仔细,我们不难发现一个好的动画通 ...

  7. iOS开发-动画总结

    一.简介 IOS 动画主要是指Core Animation框架.官方使用文档地址为:Core Animation Guide. Core Animation是IOS和OS X平台上负责图形渲染与动画的 ...

  8. iOS开发-使用Storyboard进行界面跳转及传值

    前言:苹果官方是推荐我们将所有的UI都使用Storyboard去搭建,Storyboard也是一个很成熟的工具了.使用Storyboard去搭建所有界面,我们可以很迅捷地搭建出复杂的界面,也就是说能为 ...

  9. IOS开发之——动画-转场动画(98)

    一 概述 CATransition转场动画介绍 专场动画属性及过渡效果 示例(动画切换模拟转场动画) 二 CATransition专场动画介绍 nCATransition是CAAnimation的子类 ...

最新文章

  1. 九九乘法表c语言代码空格,九九乘法表的C语言代码.doc
  2. Selenium Web 自动化 - 如何找到元素
  3. 一条路走不通了,就走另一条:
  4. SpringBoot Actuator监控【转】
  5. redis高级-内存淘汰策略
  6. traceroute和mtr
  7. 【数学】奶牛编号(jzoj 2932)
  8. C++关于虚基类、构造函数、析构函数、成员对象的两个程序浅析
  9. 【操作系统】进程调度(4):I/O、不可预测的运行时间
  10. 转: 自适应css布局—-流动布局新时代(译文)
  11. 【Flink】Flink kafka Spark 如何实现数据有序性
  12. matlab 多项式表达,Matlab多项式运算
  13. Ubuntu zip压缩文件夹 和解压文件
  14. Jmeter安装及使用教程
  15. 基于OpenCv的人脸识别(Python完整代码)
  16. 准确率(accuracy)、精确率(Precision)、召回率(Recall)
  17. python量化策略——改进的美林时钟代码(代码版)
  18. 微信开发流程总结(基于微信平台)
  19. Boofuzz协议漏洞挖掘入门教程与使用心得
  20. PCB中solder层和paste层的区别

热门文章

  1. 2016计算机应用实操题,2016计算机一级MS office操作题及答案
  2. sqlite数据库死亡提示database disk image is malformed的修复经历
  3. 多属性决策与层次分析
  4. JAVA实现寻找两个有序数组的中位数
  5. 2021-08-19 WPF控件专题 Expander 控件详解
  6. 超全教育cc0高清摄影图片素材网站整理
  7. linux下的git本地仓库
  8. 【信息系统项目管理师】论信息系统项目的整体管理(论文攻略篇)
  9. word还原原始照片
  10. 继智能手机后的下一个战场:智能家居