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