美文网首页将来跳槽用动画
iOS 开发·核心动画相关类

iOS 开发·核心动画相关类

作者: 富城 | 来源:发表于2021-02-24 23:22 被阅读0次

    CALayer 所属 QuartzCore框架。

    UIView 有交互和显示功能,

    CALayer 是用来显示

    添加动画三步骤:

    1. 初始化动画对象
    2. 修改动画属性值
    3. 将动画添加到 layer

    动画前后,view 的位置是没有变的:因为看到的都是假象,UIView 并没有发生变化

    虽然 CALayer 是不响应点击事件的,但是可以设置位置监测:

    CGPoint p = [[touches anyObject] locationInView:self.view];
    if ([_redLayer.presentationLayer hitTest:p]) {
        NSLog(@"1");
    }
    

    模型图层和呈现图层

    呈现图层:presentationLayer:返回表示层对象的副本,该对象表示当前在屏幕上显示的层状态。

    显式动画和隐式动画区别:

    隐式:设置 layerframe 等属性,前后会有动画效果,时间是0.25s

    显式:直接通过 CoreAnimation 类设置动画

    关键帧动画的演示(图标抖动效果)

    #define angleToRadians(angle) ((angle)/180.0 * M_PI)
    // 窗口抖动动画(关键帧动画)
    CAKeyframeAnimation *frameAnim = [CAKeyframeAnimation animation];
    frameAnim.keyPath = @"transform.rotation"; // 旋转角度
    frameAnim.values = @[@angleToRadians(-3), @angleToRadians(3)]; // 角度转弧度,再填一个到-3 的角度就好看了, @angleToRadians(-3),或者设置autoreverse 属性为yes;
    frameAnim.autoreverses = YES; // 但是速度变慢了, 再设置一个速度 speed 为 2
    frameAnim.speed = 2; // 两倍速度
    frameAnim.repeatCount = MAXFLOAT;
    [_redLayer addAnimation:frameAnim forKey:nil];
    

    相关文章

      网友评论

        本文标题:iOS 开发·核心动画相关类

        本文链接:https://www.haomeiwen.com/subject/pigefltx.html