同时对view延时执行两个动画时候的现象

简介:

同时对view延时执行两个动画时候的现象

对于view延时执行了两个动画后,会将第一个动画效果终止了,直接在第一个动画的view的最后的状态上接执行后续的动画效果,也就是说,我们可以利用这个特性来写分段动画效果,比如,可以定时2秒,2秒的状态值为100%,中途可以停止,达不到2秒的效果就触发不了最终效果,这对于写控件来说是很好的一个属性哦,下次教程将会写一个按钮的特效的控件,效果类似于:

效果:

源码:

//
//  ViewController.m
//  ViewAnimation
//
//  Created by YouXianMing on 15/1/13.
//  Copyright (c) 2015年 YouXianMing. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@property (nonatomic, strong) UIView   *showView;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
 
    // 添加view
    self.showView                 = [[UIView alloc] initWithFrame:CGRectMake(10, 100, 0, 30)];
    self.showView.backgroundColor = [UIColor redColor];
    [self.view addSubview:self.showView];
    
    // 1s后执行变长动画
    [self performSelector:@selector(viewAnimationOne) withObject:nil afterDelay:1];
    
    // 2s后执行缩小动画
    [self performSelector:@selector(viewAnimationTwo) withObject:nil afterDelay:2];
}

- (void)viewAnimationOne {

    // 动画时间长度为3s
    [UIView animateWithDuration:3.f animations:^{
        self.showView.frame = CGRectMake(10, 100, 0 + 300, 30);
    } completion:^(BOOL finished) {
        NSLog(@"动画1结束 %@", NSStringFromCGRect(self.showView.frame));
    }];
    
    
}

- (void)viewAnimationTwo {
    
    // 动画时间长度为1s
    [UIView animateWithDuration:1.f animations:^{
        self.showView.frame = CGRectMake(10, 100, 0, 30);
    } completion:^(BOOL finished) {
        NSLog(@"动画2结束 %@", NSStringFromCGRect(self.showView.frame));
    }];
}


@end

 

目录
相关文章
|
API 图形学
Unity设置播放模式下始终先执行指定的场景
通过我们使用Unity开发游戏,是在PC/Mac上。而一个游戏通常也会有很多的场景,比如A、B、C、D三个场景,正常流程下的执行顺序是 A –> B –> C –> D。在具体一点,比如 A —— 启动场景、B —— 资源加载场景、C —— 登录场景、D —— 战斗场景。
1758 0
|
6月前
|
JavaScript
重排和重绘的区别,什么情况下会触发这两种情况
重排和重绘的区别,什么情况下会触发这两种情况
119 0
|
6月前
|
JSON 前端开发 算法
2715. 执行可取消的延迟函数
2715. 执行可取消的延迟函数
42 0
|
6月前
重排和重绘的区别,什么情况下会触发这两种情况?
重排和重绘的区别,什么情况下会触发这两种情况?
78 0
|
存储 缓存 固态存储
三分钟解决AE缓存预览渲染错误、暂停、卡顿问题
三分钟解决AE缓存预览渲染错误、暂停、卡顿问题
1206 2
|
JavaScript 前端开发 异构计算
【怎么理解回流跟重绘?什么场景下会触发?】
【怎么理解回流跟重绘?什么场景下会触发?】
如何检查视频画面延迟的时间
做视频通讯的朋友,画面延迟,就是要经常测试的事情。那么怎样测试延迟呢?
466 0
|
XML 图形学 数据格式
Animation组合动画踩坑-实现循环播放动画,可控制次数
Animation组合动画踩坑-实现循环播放动画,可控制次数
|
消息中间件 Android开发
读源码长知识 | Android卡顿真的是因为”掉帧“?
掉帧是因为生产帧速度跟不上消费帧速度。Choreographer 用于同步生产和消费帧的速度。以读源码方式还原掉帧时软件层面发生的事情。
269 0
|
前端开发 小程序 UED
小程序图片合成:异步并发渲染→同步阻塞渲染
小程序图片合成:异步并发渲染→同步阻塞渲染
小程序图片合成:异步并发渲染→同步阻塞渲染