美文网首页iOS、OC
iOS如何让视图沿着贝塞尔曲线动起来

iOS如何让视图沿着贝塞尔曲线动起来

作者: QYiZHong | 来源:发表于2018-01-10 15:38 被阅读1066次

    要想使视图可以沿着贝塞尔曲线运动,要用到关键帧动画CAKeyframeAnimation

    我们可以在一个button的点击事件中加入如下代码

    CAKeyframeAnimation *animation = [CAKeyframeAnimation animation];
    //设置动画属性,因为是沿着贝塞尔曲线动,所以要设置为position
    animation.keyPath = @"position";
    //设置动画时间
    animation.duration = 2;
    // 告诉在动画结束的时候不要移除
    animation.removedOnCompletion = NO;
    // 始终保持最新的效果
    animation.fillMode = kCAFillModeForwards;
    //贝塞尔曲线
    UIBezierPath *circlePath = [UIBezierPath bezierPathWithArcCenter:CGPointMake(200, 200) radius:60 startAngle:M_PI endAngle:M_PI_2 clockwise:true];
    // 设置贝塞尔曲线路径
    animation.path = circlePath.CGPath;
    // 将动画对象添加到视图的layer上
    [_greenView.layer addAnimation:animation forKey:nil];
    

    如上代码所示,就能使得这个greenView视图能够跟着贝塞尔曲线运动

    其中

    // 告诉在动画结束的时候不要移除
    animation.removedOnCompletion = NO;
    // 始终保持最新的效果
    animation.fillMode = kCAFillModeForwards;
    

    这两行代码让动画结束后不会回到原来的位置,这是第一种方法

    我们也可以通过在动画结束后直接修改视图的frame或者center到运动结束的那个点也行

    相关文章

      网友评论

        本文标题:iOS如何让视图沿着贝塞尔曲线动起来

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