我在平移手势时遇到了一些问题。我的代码如下:
@objc func didPan(sender: UIPanGestureRecognizer) {
if sender.state == .began {
print("Began, start animation")
startAnimation()
} else if sender.state == .changed {
print("Changing … may be do something")
} else if sender.state == .ended || sender.state == .cancelled {
print("Ended … stop animation")
stopAnimation()
}
}
问题在于,当我停止/结束平移手势时,everytime没有执行stopAnimation。而是打印出“ Changing ...”。
有时它会结束,有时却不会。我在这里错了吗?
@objc func didPan(sender: UIPanGestureRecognizer) {
if sender.state == .began {
print("Began, start animation")
startAnimation()
} else if sender.state == .ended || sender.state == .cancelled {
print("Ended … stop animation")
stopAnimation()
} else if sender.state == .changed {
print("Changing … may be do something")
}
}
由于您正在使用else if
,因此首先会检查.changed
,因此控制权不会移至stopAnimation()
部分。