当我使用CATransaction完成来等待动画完成时,它多次调用了完成。应该只调用一次。这是示例代码
@objc func spinWheel(sender: UIPanGestureRecognizer) {
CATransaction.begin()
CATransaction.setCompletionBlock{ [weak self] in
print("hello")
}
startRotation(angle: calculatePosition)
CATransaction.commit()
}
因此,在我滑动UIView之后,它将旋转。完成旋转后,我将尝试打印。它将打印约6至7次。应该只叫一次
答案 0 :(得分:1)
我认为您对此动画的处理方法是错误的。将平移手势添加到视图并将其平移时。只要您平移,它就会一直呼叫委托。
所以您应该做的是将UIPanGestureRecognizer
替换为UISwipeGestureRecognizer
或在平移手势结束时处理完成。