私のプロジェクトには、イメージスライダが内部にあるカスタムuitableviewCellがあります。基本的には画像のページが表示されたスクロールビューです。UIGestureRecognizerのダブルタップ
いくつかの操作を実行するには、このImageSliderをタップしてダブルタップする必要があります。シングルタップは正常に動作していますが、ダブルタップセレクタはトリガされません。
override func awakeFromNib() {
super.awakeFromNib()
let singleTap = UITapGestureRecognizer(target: self, action: #selector(singleTap(_:)))
singleTap.numberOfTapsRequired = 1
singleTap.cancelsTouchesInView = false
slideShowView.addGestureRecognizer(singleTap)
//Double tap recognizer
let doubleTap = UITapGestureRecognizer(target: self, action: #selector(doubleTap(_:)))
doubleTap.cancelsTouchesInView = false
doubleTap.numberOfTapsRequired = 2
slideShowView.addGestureRecognizer(doubleTap)
singleTap.require(toFail: doubleTap)
print("slideshow recognizers",slideShowView.gestureRecognizers!) }
func doubleTap(_ sender : UITapGestureRecognizer) {
print("doubletap")
}
func singleTap(_ sender : UITapGestureRecognizer) {
print("singleTap")
}
よろしく
EDIT:あなたは、ここに私のログを見ることができる私は変更私のオリジナルのポストすぎ
slideshow recognizers [<UITapGestureRecognizer: 0x17ec1670; state = Possible; view = <ImageSlideshow.ImageSlideshow 0x17ec0e30>; target= <(action=singleTap:, target=<Descubra.FeedDefaultCell 0x183cf800>)>; must-fail = {
<UITapGestureRecognizer: 0x17e763b0; state = Possible; view = <ImageSlideshow.ImageSlideshow 0x17ec0e30>; target= <(action=doubleTap:, target=<Descubra.FeedDefaultCell 0x183cf800>)>; numberOfTapsRequired = 2>
}>, <UITapGestureRecognizer: 0x17e763b0; state = Possible; view = <ImageSlideshow.ImageSlideshow 0x17ec0e30>; target= <(action=doubleTap:, target=<Descubra.FeedDefaultCell 0x183cf800>)>; numberOfTapsRequired = 2; must-fail-for = {
<UITapGestureRecognizer: 0x17ec1670; state = Possible; view = <ImageSlideshow.ImageSlideshow 0x17ec0e30>; target= <(action=singleTap:, target=<Descubra.FeedDefaultCell 0x183cf800>)>>
}>]
singleTap
requireToFailは、同じビューで2つのジェスチャーを使用する場合は必須です。ビューのhase userinteractionenabled = YESで、ダブルタップの発生を防ぐtableview DidSelectのメソッドがないことも確認してください。 –
@ snakeこれはuserInteractionEnabled = trueです。そうしないと、別のビューで各画像を開いているため、スライドショーで画像をスライドできず、シングルレットが機能しています。 – pneves
申し訳ありません私はUIScrollViewを持っているあなたの部分を逃した。 UIScrollViewをテキストに書き込むと、今後の質問に人々が詳細を見逃すことはずっと簡単です。 ScrollViewには独自のDouble Tappingのメソッドがあり、カスタムのメソッドで失敗する理由があります。スクロールビューでdelayaysContentTouches = NOを設定して、問題が解決するかどうかお知らせください。そうでなければ、あなたは問題を知っているので、Googleの解決策をもっと簡単にすることができます。 GL –