ios-多次调用CATransaction完成

时间:2018-08-30 05:21:48

标签: ios swift core-animation

当我使用CATransaction完成来等待动画完成时,它多次调用了完成。应该只调用一次。这是示例代码

@objc func spinWheel(sender: UIPanGestureRecognizer) {
    CATransaction.begin()
    CATransaction.setCompletionBlock{ [weak self] in
        print("hello")
    }
    startRotation(angle: calculatePosition)
    CATransaction.commit()
}

因此,在我滑动UIView之后,它将旋转。完成旋转后,我将尝试打印。它将打印约6至7次。应该只叫一次

1 个答案:

答案 0 :(得分:1)

我认为您对此动画的处理方法是错误的。将平移手势添加到视图并将其平移时。只要您平移,它就会一直呼叫委托。

所以您应该做的是将UIPanGestureRecognizer替换为UISwipeGestureRecognizer或在平移手势结束时处理完成。