CABasicAnimation-核心动画

本文详细介绍了如何使用CABasicAnimation实现iOS视图的各种动画效果,包括缩放、旋转和平移等基本操作,并展示了如何调整关键路径来改变动画属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//
//  ViewController.m
//  001-核心动画
//
//  Created by LTOVE on 15/10/15.
//  Copyright (c) 2015年 LTOVE. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()
@property (weak,nonatomic)IBOutlet UIImageView *imgView;
@end

@implementation ViewController

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    
    [self testTransfromScalAnimation];
}
#pragma mark -缩放
-(void)testTransfromScalAnimation
{
    CABasicAnimation *animation = [CABasicAnimation animation];
    animation.keyPath = @"transform.scale.x";
    animation.duration = 2;
    animation.byValue = @1.5;
    animation.removedOnCompletion = NO;
    animation.fillMode = kCAFillModeForwards;
    [self.imgView.layer addAnimation:animation forKey:nil];
}

#pragma mark - 旋转
-(void)testTransFromRoationAnimation
{
    CABasicAnimation *anmiation = [CABasicAnimation animation];
    anmiation.keyPath = @"transform.rotation.x";
    anmiation.byValue = @(M_PI_4);
    anmiation.removedOnCompletion = NO;
    anmiation.fillMode = kCAFillModeForwards;
    [self.imgView.layer addAnimation:anmiation forKey:nil];
}

#pragma mark -平移
-(void)testTransFormTranslationAnimation{
    CABasicAnimation *animation = [CABasicAnimation animation];
    animation.keyPath = @"transform.translation";
    animation.byValue = @10;
    [self.imgView.layer addAnimation:animation forKey:nil];
    
    animation.removedOnCompletion = NO;
    animation.fillMode = kCAFillModeForwards;
}


#pragma mark -cs位置的动画
-(void)testPositionAnimation{
    CABasicAnimation *anmiation = [CABasicAnimation animation];
    anmiation.keyPath = @"position";
//    anmiation.fromValue = [NSValue valueWithCGPoint:CGPointMake(200, 200)];
//    anmiation.toValue = [NSValue valueWithCGPoint:CGPointMake(300, 300)];
    anmiation.byValue = [NSValue valueWithCGPoint:CGPointMake(10, 10)];
    anmiation.removedOnCompletion = NO;
    anmiation.fillMode = kCAFillModeForwards;
    anmiation.duration = 2;
    
    [self.imgView.layer addAnimation:anmiation forKey:nil];
}


#pragma mark -测试尺寸的动画
-(void)testBoundsAnnimation{
    CABasicAnimation *anmiation = [CABasicAnimation animation];
    anmiation.keyPath = @"bounds";
    anmiation.toValue = [NSValue valueWithCGRect:CGRectMake(0, 0, 150, 150)];
    anmiation.removedOnCompletion = NO;
    anmiation.fillMode = kCAFillModeForwards;
    anmiation.duration = 5;
    
    
    [self.imgView.layer addAnimation:anmiation forKey:nil];
}

@end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值