0
UITapGestureRecognizer
は、シングルタップとダブルタップの両方を処理するために2つあります。アクション機能でUIGestureRecognizerのプロパティを切り替えることができないのですが
let doubleTap = UITapGestureRecognizer(
target: self, action: #selector(viewController.handleDouble)
)
doubleTap.numberOfTapsRequired = 2
myview.addGestureRecognizer(doubleTap)
let singleTap = UITapGestureRecognizer(
target: self, action: #selector(viewController.handleSingle)
)
singleTap.numberOfTapsRequired = 1
singleTap.require(toFail: doubleTap)
myview.addGestureRecognizer(singleTap)
そしてhandelDouble
とhandleSingle
機能はダブルとシングルタップを処理している:私のコードは次のようです。これは完璧に機能します。
今、私は両方のケースを処理するために1 UITapGestureRecognizer
を作成したい、のようなもの:
let tap = UITapGestureRecognizer(
target: self, action: #selector(viewController.handleTap(recognizer:))
)
myview.addGestureRecognizer(Tap)
そして、私はこのように書いたhandelTap
機能で:
func handleTap(recognizer: UITapGestureRecognizer) {
switch recognizer.state {
case .ended:
if (recognizer.numberOfTapsRequired = 2) {
// to do something with double tapping
} else {
// to do something with single tapping
}
default: break
}
}
はしかし、これはそうではありません作業。より奇妙なのは、ダブルタップすると、シングルタップが発生するということです。
これはUISwipeGestureRecognizer
にも起こります。どちらの方向を選択するにも1つの機能を使用できないためです。
このような作業のために複数のUIGestureRecognizer
インスタンスしか作成できないのですか?
だと思いますが、まだ質問は残っています –