我试图在我的CAAnimation完成后执行一个完成块。然而,动画块似乎是在我的动画完成之前调用的。不过,动画仍然是正确的。
[CATransaction begin];
[self.view.layer addAnimation:self.dropAndBounceAnimation forKey:@"appearance"];
[CATransaction setCompletionBlock:completionBlock];
[CATransaction commit];dropAndBounceAnimation是位置上的CAKeyFrameAnimation .y,具有固定的持续时间。
发布于 2013-11-14 11:01:23
我不确定这是否真的是正确的修复,但通过在添加图层动画之前设置完成块,在正确的时间一致调用完成块。
[CATransaction begin];
[CATransaction setCompletionBlock:completionBlock];
[self.view.layer addAnimation:self.dropAndBounceAnimation forKey:@"appearance"];
[CATransaction commit];发布于 2015-04-15 12:13:33
在添加动画之前,需要设置完成块。
[CATransaction begin];
[CATransaction setValue:[NSNumber numberWithFloat: 1.0f] forKey:kCATransactionAnimationDuration];
[CATransaction setCompletionBlock:^{
// ... whatever you want to do when the animation is complete
}];
[self.googleMapsView animateToCameraPosition:[GMSCameraPosition
cameraWithLatitude:LATITUDE
longitude:LONGITUDE
zoom:ZOOM]];
[CATransaction commit];这必须在视图上的动画完成后触发完成块。
发布于 2016-11-28 14:47:07
以下是Swift 3.0.1,Xcode 8版本:
CATransaction.begin()
CATransaction.setCompletionBlock({
print("Transaction completed")
})
print("Transaction started")
view.layer.add(dropAndBounceAnimation, forKey: "appearance")
CATransaction.commit()https://stackoverflow.com/questions/19975938
复制相似问题