長押しが検出された後にのみ、パン ジェスチャを実装したいと考えています。「UIGestureRecognizerState.Changed」の長押しジェスチャーを監視し、そこでパンを処理するためにセレクターを呼び出しています。セレクターが起動します (「print()」チェックがコンソールに表示されます) が、uiview (blueRec) が実際に移動/変換する前に指を離す必要があります。
長押しとパンの両方のジェスチャが本質的に連続していることは理解していますが、長押しを起動した最初のプレスを使用して、タッチされた uiview (blueRec) もパンするにはどうすればよいですか? これがまったく当てはまらないとは思いません-requireGestureRecognizerToFail:
以下のコードを削除して、重要な行だけを含めました。
@IBOutlet weak var graySuper: UIView!
@IBOutlet weak var blueRec: UIView!
@IBOutlet weak var blueLeading: NSLayoutConstraint!
@IBOutlet weak var blueTop: NSLayoutConstraint!
var longPressGesture:UILongPressGestureRecognizer!
override func viewDidLoad() {
super.viewDidLoad()
self.longPressGesture = UILongPressGestureRecognizer(target:self, action:"handleLongpress:")
self.longPressGesture.minimumPressDuration = 2
self.blueRec.addGestureRecognizer(self.longPressGesture)
}
func handleLongpress(sender:UILongPressGestureRecognizer) {
print("LPress")
switch (sender.state) {
case UIGestureRecognizerState.Began:
self.blueRec.center = sender.locationInView(self.graySuper)
break;
case UIGestureRecognizerState.Changed:
self.blueRec.center = sender.locationInView(self.graySuper)
break;
case UIGestureRecognizerState.Ended:
print("Press Ended ")
break;
default:
break;
}
}