0

私は、特定の相互作用を認識するためにUIControlEventsを使用するカスタムUIControlを作成しました。それはすべてうまく働いた。今、私はまた私のUicontrolがUIPanGestureRecognizerを認識したい、ここだから私はtouchDown認識されます私のFIELDVIEW(カスタムするuicontrol)をクリックすると、コードUIControlRecognizerがUIControlEventsと連携していない

fieldView.addTarget(self, action: #selector(willSelectField(sender:)), for: .touchDown) 
fieldView.addTarget(self, action: #selector(didSelectField(sender:)), for: .touchUpInside) 
fieldView.addTarget(self, action: #selector(canceledFieldSelection(sender:)), for: .touchUpOutside) 
fieldView.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(draggingField(gesture:)))) 

です。パンを開始しないと、touchUpInsidetouchUpOutsideも認識されます。しかし、私がパンし、例えば外に出ようとするとフィールドビューtouchUpOutsideはトリガーされません。


注:touchDragInsideそれはたった約100ピクセルの範囲内でドラッグ認識するための代替ではありません。

答えて

0

referenceを参照してください:

ジェスチャー認識は、そのジェスチャーを認識すると、ビューの残りのタッチがキャンセルされています。

あなたはfalsecancelsTouchesInViewを設定しようとする、またはあなたの意見でtouchesCancelled(_:with:)をオーバーライドすることができます。

+0

私は試しましたが、 'touchesCancelled'メソッドが呼び出されず、' touchUpInside'または 'touchUpOutside'の間でこのメソッドで区別する方法も見つけられません – Codey

関連する問題