iOS开发-核心动画随笔

时间:2023-12-04 14:21:20
  • 核心动画
    可以让View旋转,缩放,平移(主要是操作View的layer(层)属性)但是核心动画改变的位置不是真实的位置,一切都是假象所以有时候要用到其他动画,如UIView本来封装的动画,还有定时器
    // 实现图片360°旋转
    CABasicAnimation* rotationAnimation;
    rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
    rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI * 2.0 ];
    rotationAnimation.duration = duration;
    rotationAnimation.cumulative = YES;
    rotationAnimation.repeatCount = repeat;
    [view.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];
  • 定时器

    CADisplayLink 每秒调用60次

    // 创建定时器
    CADisplayLink *link = [CADisplayLink displayLinkWithTarget:self selector:@selector(XXX)]; // 加入运行循环
    [link addToRunLoop :[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode]; // 实现XXX方法
    -(void)XXX
    { // 动画方法 }

    ***使用按钮点击(或其他事件)启用定时器时,要懒加载定时器,否则连续点击按钮的话定时器会累加。

    定时器有一个停止的属性

    link.pause = NO; // 定时器结束

    link.pause = YES; // 定时器停止

  • 加载Xib有两个方法
    //1.这个要在没有与storyboard连线时用的
    - (id)initWithCoder:(NSCoder *)aDecoder
    { } //2.这个在有与storyboard连线时用
    - (void)awakeFromNib
    { }
    否则取不到视图类里的属性
  • 剪裁图片
    // 一张含有多张图片的素材进行剪裁,然后使用核心动画,进行UI布局时用到
    // 剪裁图片方法,第一个参数传要剪裁的Image.CGimage,第二个参数传尺寸这里要注意图片是否像素点
    CGImageCreatWithIamgeInRect( , );