ios - 多次调用 CATransaction 完成
ios - CATransaction completion called multiple times
当我使用 CATransaction 完成等待动画完成时,它多次调用完成。这是它应该只调用一次。这是示例代码
@objc func spinWheel(sender: UIPanGestureRecognizer) {
CATransaction.begin()
CATransaction.setCompletionBlock{ [weak self] in
print("hello")
}
startRotation(angle: calculatePosition)
CATransaction.commit()
}
所以在我滑动 UIView 后,它会旋转。完成旋转后,我将尝试打印。它将打印大约 6-7 次。应该只调用一次
我认为你制作这个动画的方法是错误的。当您向视图添加平移手势并平移它时。只要您在平移,它就会一直调用委托。
所以你应该做的是用 UISwipeGestureRecognizer
替换 UIPanGestureRecognizer
或者在平移手势结束时处理完成。
当我使用 CATransaction 完成等待动画完成时,它多次调用完成。这是它应该只调用一次。这是示例代码
@objc func spinWheel(sender: UIPanGestureRecognizer) {
CATransaction.begin()
CATransaction.setCompletionBlock{ [weak self] in
print("hello")
}
startRotation(angle: calculatePosition)
CATransaction.commit()
}
所以在我滑动 UIView 后,它会旋转。完成旋转后,我将尝试打印。它将打印大约 6-7 次。应该只调用一次
我认为你制作这个动画的方法是错误的。当您向视图添加平移手势并平移它时。只要您在平移,它就会一直调用委托。
所以你应该做的是用 UISwipeGestureRecognizer
替换 UIPanGestureRecognizer
或者在平移手势结束时处理完成。