0
私はドラッグしたいSpringButtonを持っています。これは私のコードです:UIPanGestureRecognizerは状態を開始したままになります
var gesture = UIPanGestureRecognizer(target: self, action: #selector(userDragged))
card.addGestureRecognizer(gesture)
var cardIsCurrentlyMoving = false
func userDragged(gesture: UIPanGestureRecognizer){
if !cardIsCurrentlyMoving{
if let button = gesture.view as? SpringButton {
if gesture.state == .began {
print("begon")
cardIsCurrentlyMoving = true
startPosition = button.center
} else if gesture.state == .changed {
print("changed")
} else if gesture.state == .ended{
print("ended")
cardIsCurrentlyMoving = false
}
}
}
}
関数が呼び出され、状態が.began
に変更されます。しかし、ボタンを移動しようとすると何も起こりません。これはcardIsCurrentlyMoving
が.began
ではtrueに設定されていますが、gesture.state .changed
と.ended
は決して呼び出されないため、falseに戻ることはありません。
指を離してもう一度ボタンをタッチすると、何も起こりません。 UIPanGestureRecognizer
が.changed
と.ended
を実行しないのはなぜですか?
ありがとうございました。
これは私の愚かだったhehe ... 4分で答えを受け入れるでしょう –
それは時々私と同様に起こります:) – Surjeet