动画CAShapeLayer:完成时完成

时间:2016-09-17 22:37:09

标签: ios swift core-animation cashapelayer

我有一个CAShapeLayer,其strokeEnd我偶尔会在NSTimer循环内更新。当我打电话时,效果很好:

myPathLayer.strokeEnd += 0.1

这条路径会根据我的需要自动动画。我的问题是,因为这不是函数调用,所以没有完成块。这个动画完成后,我想执行另一个动作。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

您可以使用CATransaction进行换行,以设置图层动画的完成块。

CATransaction.begin()
CATransaction.setCompletionBlock({self.myFunction()})
myPathLayer.strokeEnd += 0.1
CATransaction.commit()

希望有更好的方法,但这就是我做到的。

答案 1 :(得分:0)

您可以使用CAAnimation委托方法。

    Route::get('/checkout',[
        'uses' =>'ProductController@getCheckout',
        'as' => 'checkout'

        ]);

    Route::post('/checkout',[
    'uses'=> 'ProductController@postCheckout',
    'as'=>'checkout'
        ]);

然后

class Whatever: CAAnimationDelegate { ...

并使用委托方法:

let animation = CABasicAnimation(keyPath: <your_key_path>)
...
animation.delegate = self