前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CATransition自定义转场动画

CATransition自定义转场动画

作者头像
周希
发布2019-10-15 11:09:19
5150
发布2019-10-15 11:09:19
举报
文章被收录于专栏:APP自动化测试APP自动化测试

我们可以通过CATransiton来自定义一些漂亮的转场动画,

CATransition继承自CAAnimation, 所以用法跟CAAnimation差不多

先直接上一个代码:

代码语言:javascript
复制
#import "ViewController.h"

@interface ViewController ()

@property (nonatomic, strong) UIImageView *imageView;
@property (nonatomic, strong) UIButton    *btn;

@end

@implementation ViewController

- (void)viewDidLoad {
    
    [super viewDidLoad];
    
    //创建ImageView
    self.imageView       = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 200, 100)];
    self.imageView.image = [UIImage imageNamed:@"1"];
    
    [self.view addSubview:self.imageView];
    
    //创建button
    self.btn       = [UIButton buttonWithType:UIButtonTypeSystem];
    self.btn.frame = CGRectMake(200, 400, 80, 40);
    
    [self.btn setTitle:@"变换" forState:UIControlStateNormal];
    [self.btn addTarget:self
                 action:@selector(changeImage)
       forControlEvents:UIControlEventTouchUpInside];
    
    [self.view addSubview:self.btn];

}

- (void)changeImage {
    
    //创建专场动画
    CATransition *animation = [CATransition animation];
    animation.duration      = 1;
    animation.fillMode      = kCAFillModeForwards;
    animation.type          = @"oglFlip";
    animation.subtype       = kCATransitionFromTop;
    
    //把动画添加到layer
    [self.imageView.layer addAnimation:animation forKey:@"ropple"];
    self.imageView.image = [UIImage imageNamed:@"2"];
}

创建专场动画跟创建CAAnimation动画类似, 一样需要设置duration, fillmode

我们说下增加的两个属性

type, 表示转场动画的类型, iOS允许我们调用的有以下几种

@"cube" @"moveIn" @"reveal" @"fade"(default) @"pageCurl" @"pageUnCurl" @"suckEffect" @"rippleEffect" @"oglFlip"

subtype, 表示动画方向

代码语言:javascript
复制
/* Common transition subtypes. */

CA_EXTERN NSString * const kCATransitionFromRight
    CA_AVAILABLE_STARTING (10.5, 2.0, 9.0, 2.0);
CA_EXTERN NSString * const kCATransitionFromLeft
    CA_AVAILABLE_STARTING (10.5, 2.0, 9.0, 2.0);
CA_EXTERN NSString * const kCATransitionFromTop
    CA_AVAILABLE_STARTING (10.5, 2.0, 9.0, 2.0);
CA_EXTERN NSString * const kCATransitionFromBottom
    CA_AVAILABLE_STARTING (10.5, 2.0, 9.0, 2.0);
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-01-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档