ios - 多次调用CATransaction完成

问题描述 投票:1回答:1

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

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

所以在我刷UIView后,它会旋转。完成旋转后,我将尝试打印。它将打印约6-7次。应该只调用一次

ios swift core-animation
1个回答
1
投票

我认为你对这个动画的方法是错误的。向视图添加平移手势并将其平移时。只要你正在平移,它就会一直呼叫代表。

所以你应该做的是用UIPanGestureRecognizer替换UISwipeGestureRecognizer或者在pan手势结束时处理完成。

© www.soinside.com 2019 - 2024. All rights reserved.