我正在尝试在CAAnimation完成后执行完成块.但是,似乎在我的动画完成之前调用了动画块.但动画仍然正确.
[CATransaction begin];
[self.view.layer addAnimation:self.dropAndBounceAnimation forKey:@"appearance"];
[CATransaction setCompletionBlock:completionBlock];
[CATransaction commit];
Run Code Online (Sandbox Code Playgroud)
dropAndBounceAnimation是position.y上的CAKeyFrameAnimation,具有固定的持续时间.
Jav*_*che 97
我不确定这是否是正确的修复,但通过在 为图层添加动画之前设置完成块,将在正确的时间始终调用完成块.
[CATransaction begin];
[CATransaction setCompletionBlock:completionBlock];
[self.view.layer addAnimation:self.dropAndBounceAnimation forKey:@"appearance"];
[CATransaction commit];
Run Code Online (Sandbox Code Playgroud)
Cod*_*aru 11
您需要在添加动画之前设置动画块.
[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];
Run Code Online (Sandbox Code Playgroud)
这必须在视图上完成该动画后触发完成块.
这是Swift 3.0.1,Xcode 8版本:
CATransaction.begin()
CATransaction.setCompletionBlock({
print("Transaction completed")
})
print("Transaction started")
view.layer.add(dropAndBounceAnimation, forKey: "appearance")
CATransaction.commit()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16050 次 |
| 最近记录: |