IOS第18天(5,CABasicAnimation基本动画)

*******

#import "HMViewController.h"

@interface HMViewController ()

@property (nonatomic, weak) CALayer *layer;

@end

@implementation HMViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    CALayer *layer = [CALayer layer];

    layer.position = CGPointMake(100, 100);

    layer.bounds = CGRectMake(0, 0, 100, 100);

    layer.backgroundColor = [UIColor redColor].CGColor;

    layer.contents = (id)[UIImage imageNamed:@"心"].CGImage;

    [self.view.layer addSublayer:layer];

    _layer = layer;

}

//旋转的动画
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    // 创建动画对象
    CABasicAnimation *anim = [CABasicAnimation animation];

    // 设置动画的属性
    anim.keyPath = @"transform.scale";

    // 设置属性改变的值
    anim.toValue = @0.5;

    // 设置动画时长
    anim.duration = 0.25;

    // 取消反弹
    // 动画执行完毕之后不要把动画移除
    anim.removedOnCompletion = NO;

    // 保持最新的位置
    anim.fillMode = kCAFillModeForwards;

    // 重复动画的次数
    anim.repeatCount = MAXFLOAT;

    // 给图层添加了动画
    [_layer addAnimation:anim forKey:nil];

}
//移动的动画
- (void)position
{
    // 创建动画对象
    CABasicAnimation *anim = [CABasicAnimation animation];

    // 设置动画的属性
    anim.keyPath = @"position";

    // 设置属性改变的值
    anim.toValue = [NSValue valueWithCGPoint:CGPointMake(200, 200)];

    // 设置动画时长
    anim.duration = 2;

    // 取消反弹
    // 动画执行完毕之后不要把动画移除
    anim.removedOnCompletion = NO;

    // 保持最新的位置
    anim.fillMode = kCAFillModeForwards;

    // 给图层添加了动画
    [_layer addAnimation:anim forKey:nil];
}

@end
时间: 2024-10-06 16:46:57

IOS第18天(5,CABasicAnimation基本动画)的相关文章

IOS第18天(6,CAKeyframeAnimation关键帧动画)

******* #import "HMViewController.h" @interface HMViewController () @property (weak, nonatomic) IBOutlet UIView *redView; @end @implementation HMViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading t

核心动画基础动画(CABasicAnimation)关键帧动画

1.在iOS中核心动画分为几类: 基础动画(CABasicAnimation) 关键帧动画(CAKeyframeAnimation) 动画组(CAAnimationGroup) 转场动画(CATransition) 2.CAAnimation:核心动画的基础类,不能直接使用,负责动画运行时间,速度的控制,本身实现了CAMediaTiming协议 3.CAPropertyAnimation:属性动画也是基类(通过属性进行动画设置,注意是动画属性),不能直接使用. CABasicAnimation:

文顶顶 iOS开发UI篇—iOS开发中三种简单的动画设置

iOS开发UI篇—iOS开发中三种简单的动画设置 [在ios开发中,动画是廉价的] 一.首尾式动画 代码示例: // beginAnimations表示此后的代码要“参与到”动画中 [UIView beginAnimations:nil context:nil]; //设置动画时长 [UIView setAnimationDuration:2.0]; self.headImageView.bounds = rect; // commitAnimations,将beginAnimation之后的所

iOS开发UI篇—iOS开发中三种简单的动画设置

iOS开发UI篇—iOS开发中三种简单的动画设置 [在ios开发中,动画是廉价的] 一.首尾式动画 代码示例: // beginAnimations表示此后的代码要“参与到”动画中 [UIView beginAnimations:nil context:nil]; //设置动画时长 [UIView setAnimationDuration:2.0]; self.headImageView.bounds = rect; // commitAnimations,将beginAnimation之后的所

CABasicAnimation 基本动画

CABasicAnimation 基本动画 没有真正的修改属性值 创建 并指定修改的属性     KeyPath: CALayer属性名, 不是所有的属性名都可以 , 只有在头文件中出现的animatable 的属性才可以    可以修改属性的属性, 例如bounds.size    CABasicAnimation * basic =   [CABasicAnimation animationWithKeyPath:@"bounds"];       动画时长    basic.du

IOS UIView(UIButton)通过显示动画移动的时候 响应点击的解决方案

今天在做一个UIButton显示动画的时候,遇到一个问题,就是在移动的时候 ,需要相应它的点击时间(click) 通过CAKeyframeAnimation 来移动UIButton的layer ,效果可以,但是就是无法点击. 解决方法: 将UIButton 的  userinterfaceenable 设置为NO 为UIButton的父view添加tap点击事件 点击事件实现如下 -(void)viewClicked:(UITapGestureRecognizer*)gesture { CGPo

iOS开发中三种简单的动画设置

iOS开发中三种简单的动画设置 [在ios开发中,动画是廉价的] 一.首尾式动画 代码示例: // beginAnimations表示此后的代码要“参与到”动画中 [UIView beginAnimations:nil context:nil]; //设置动画时长 [UIView setAnimationDuration:2.0]; self.headImageView.bounds = rect; // commitAnimations,将beginAnimation之后的所有动画提交并生成动

iOS 特定图片的按钮的旋转动画

最近做的东西中,要为一个有特定图片的按钮添加旋转动画,Demo代码如下: #import "ViewController.h" @interface ViewController () { BOOL flag; } @property (strong, nonatomic) UIImageView *imageView; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; flag

IOS第18天(9,核心动画-动画组)

****动画组 // 核心动画都是假象,不能改变layer的真实属性的值// 展示的位置和实际的位置不同.实际位置永远在最开始位置 #import "HMViewController.h" @interface HMViewController () @property (weak, nonatomic) IBOutlet UIView *redView; @end @implementation HMViewController - (void)viewDidLoad { [supe