开发者社区> 游贤明> 正文

同时对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

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
仿IOS效果-带弹簧动画的ListView
背景介绍 最近项目打算做一个界面,类似于dayone首页的界面效果,dayone 是一款付费应用,目前只有IOS端。作为一个资深懒惰的程序员,奉行的宗旨是绝对不重复造一个轮子。于是乎,去网上找一大堆开源项目,发现没有找到合适的,然后,只能硬着头皮自己来了。先看看效果: 其实写起来也比较简单,就是控制ListView的头部和底部的高度就可以了, 如果用RecycleVi
1033 0
Android 用属性动画自定义view的渐变背景
自定义view渐变背景,同时监听手势自动生成小圆球。   宿主Activity如下:   package com.edaixi.tempbak; import java.util.ArrayList; import android.
702 0
【Android NDK 开发】JNI 线程 ( JNI 线程创建 | 线程执行函数 | 非 JNI 方法获取 JNIEnv 与 Java 对象 | 线程获取 JNIEnv | 全局变量设置 )
【Android NDK 开发】JNI 线程 ( JNI 线程创建 | 线程执行函数 | 非 JNI 方法获取 JNIEnv 与 Java 对象 | 线程获取 JNIEnv | 全局变量设置 )
68 0
ExpandableListView getChildView 不执行,不显示子列表
原因很简单:   在 GroupView 里面不要加入 button 等可点击空间,否则 和 点击 Groupview 展开相冲突。 去掉就好了getGroupView
1539 0
Flutter的AnimatedContainer实现容器样式的动画切换
AnimatedContainer可以理解为Container Animat,也就是说带动画的容器,使用AnimatedContainer可以很方便的实现Widget的动画效果。
241 0
spring MVC之构造ModelAndView对象
spring MVC之构造ModelAndView对象 ----------   构造ModelAndView对象   当控制器处理完请求时,通常会将包含视图名称或视图对象以及一些模型属性的ModelAndView对象返回到DispatcherServlet。
916 0
+关注
711
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载