文档章节

IOS闪屏制作——程序启动动画

AmoyAI
 AmoyAI
发布于 2012/12/10 21:02
字数 498
阅读 2.5K
收藏 6

进度条动画:http://blog.csdn.net/jwzbskywz/article/details/7703042

首先,iOS 的 launch images 只能是静态图片

启动『动画』应该实际上是两部分,那张静态 launch image 作为起点,App 实际启动后播放完整的动画。

iOS软件开发中,通常在软件启动时需要创建一个闪屏显示欢迎信息,在显示闪屏的同时可以让程序在后台进行一些初始化工作,例如,检查网络连接、读取系统 设置等,等初始化工作完成以后再显示程序主界面,这里我们使用定时器来制作闪屏,在定时器到期以后,移除闪屏,显示程序主界面,并使用UIView的动画 方法使闪屏平滑过渡到主界面显示.

这里主要用到了定时器:

//NSTimer其实是将一个监听加入的系统的RunLoop中去,当系统runloop到如何timer条件的循环时,
//会调用timer一次,当timer执行完,也就是回调函数执行之后,timer会再一次的将自己加入到runloop中去继续监听
 

_timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(fadeScreen)
userInfo:nil repeats:NO]; 
代码:
#import "StartupScreenViewController.h"
@interface StartupScreenViewController ()

@end

@implementation StartupScreenViewController
@synthesize timer = _timer;
@synthesize splashImageView = _splashImageView;
@synthesize   mainViewController = mainviewController; //主界面
 -(void)loadView{
    CGRect appFrame = [[UIScreen mainScreen] applicationFrame];
    UIView *view = [[UIView alloc] initWithFrame:appFrame];
    view.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
    self.view = view;
    [view release];
    
    _splashImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed: @"splash.png"]];
    _splashImageView.frame = CGRectMake(0, 0, 320, 480);
    [self.view addSubview:_splashImageView];
    _viewController = [[MainViewController alloc] init];
    _viewController.view.alpha = 0.0;
    [self.view addSubview:viewController.view];

 _timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(fadeScreen) userInfo:nil repeats:NO];

}

- (void)fadeScreen{
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.75];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDidStopSelector:@selector(finishedFading)];
    self.view.alpha = 0.0;
    [UIView commitAnimations];
}

- (void) finishedFading{
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.75];
    self.view.alpha = 1.0;
     viewController.view.alpha = 1.0;
     [UIView commitAnimations];
    [_splashImageView removeFromSuperview];
}

例子2:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
    self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    
    UIImageView *splashScreen = [[[UIImageView alloc] initWithFrame:self.window.bounds] autorelease];
    splashScreen.image = [UIImage imageNamed:@"Default"];
    [self.window addSubview:splashScreen];
    
    [UIView animateWithDuration:1.0 animations:^{
        CATransform3D transform = CATransform3DMakeScale(1.5, 1.5, 1.0);
        splashScreen.layer.transform = transform;
        splashScreen.alpha = 0.0;
    } completion:^(BOOL finished) {
        [splashScreen removeFromSuperview];
    }];
    
    return YES;
} 

本文转载自:http://book.2cto.com/201210/6686.html

上一篇: NSTimer
下一篇: IOS网络检测
AmoyAI
粉丝 31
博文 59
码字总数 3593
作品 0
朝阳
私信 提问
加载中

评论(0)

IOS12开发者预览版第二版使用评测

     手头有一部iPhone 6s Plus,因为之前看同学和朋友们升到IOS 11后手机变得非常卡顿所以没有升级。最近偶然看到IOS 12针对旧机型做了性能优化,号称提升70%相机打开速度、50%键盘显示...

张旭乾
2018/06/23
0
0
iOS与Android平台上问题列表

问题列表 伪类 :active 生效 要CSS伪类 生效,只需要给 document 绑定 或 事件 消除 transition 闪屏 两个方法 消除 IE10 里面的那个叉号 来源出处:http://msdn.microsoft.com/en-us/libra...

陈文亮
2015/03/01
7
0
iOS编程实战 — 新的UI范式

self.view.saturationDelta = 2.0f; self.layer = [CALayer layer];self.layer.frame = CGRectMake(80, 100, 160, 160);[self.view.layer addSublayer:self.layer]; // 截屏float scale = [......

Julday
02/03
0
0
fir.im Weekly - iOS 开发中的 Git 流程

本期 fir.im Weekly 收集了微博上的热转资源,包含 Android、iOS 开发工具、源码等好用的轮子,还有一些 APP 设计的 Tips,希望对你有用。 精仿知乎日报 iOS 端 @我偏笑_NSNirvana花了将近一...

风起云飞fir_im
2015/11/03
102
0
值得学习的 15 个 iPhone 应用开发教程

1. 根据 RSS 创建平滑的 iPhone 界面 该教程展示如何创建一个适合 iPhone 的网页,并通过 RSS 内容自动填充,同样也适合其他智能手机。 进入教程 2. 在 iOS 中导入和导出文档 当我们开发一个...

红薯
2011/11/02
5K
9

没有更多内容

加载失败,请刷新页面

加载更多

一款提升IT运维工作效率的工具,你值得拥有!

IT运维的工作内容主要是负责服务器硬件配置、独立主机或虚拟化产品的开通维护、服务器日常运行监控和管理等,具体的要看企业对这个岗位的要求。 而像运维这样的岗位,我个人是推荐可以使用一...

欢乐马在开源
28分钟前
44
0
IDEA 多线程Debug

一、问题描述 在idea中的进行调试时,代码中有多线程,想对线程中的代码进行跟踪,代码如下: for (int i = 0; i < 5; i++) { final int index = i; exec...

Airship
32分钟前
19
0
jenkins 插件加速

参考:https://my.oschina.net/VASKS/blog/3106314 主要是自己创建一个nginx, 让jenkins从清华源下载。 以下是创建nginx的Dockerfile Dockerfile FROM nginxADD nginx.conf /etc/nginx/ngi......

杰仪
33分钟前
43
0
五分钟自学编程:怎样才能学好笔试面试最爱考察的算法

原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者。 本文思维导图 什么是算法 上回我们有一篇文章,讲述了作为一个新人程序员,如何学习数据结构这门课程,其实呢,数据结构和...

黄小斜
36分钟前
24
0
面试题 11:旋转数组的最小数字

题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋...

Oaki
42分钟前
50
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部