私は、特定の相互作用を認識するために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:))))
です。パンを開始しないと、touchUpInside
とtouchUpOutside
も認識されます。しかし、私がパンし、例えば外に出ようとするとフィールドビュー、touchUpOutside
はトリガーされません。
注:touchDragInside
それはたった約100ピクセルの範囲内でドラッグ認識するための代替ではありません。
私は試しましたが、 'touchesCancelled'メソッドが呼び出されず、' touchUpInside'または 'touchUpOutside'の間でこのメソッドで区別する方法も見つけられません – Codey