2016-04-19 19 views
1

私はUIScrollViewでいくつかの問題を抱えています。ここに状況はあります: 私はUIScrollViewを持っていますが、小さいものはUIViewです。 UIViewには、スクロールビュー内で移動するためのパンイベントがあります。しかし、私がスクロールビューをズームしたときに、私の指のうちの1つがUIviewにあるとパンが始まり、UIScrollViewはズーミングしていません(そしてUIviewは動いています)。UIScrollviewズームはUIScrollviewのサブビューを作成しています

パンのMaximumNumberOfTouchesを設定しようとしましたが、動作しません。私は、第2タッチが視界の外にあるからだと思う。 どのように動作させるか考えていますか?

ありがとうございました!

答えて

0

あなたはgestureRecognizer(_:shouldRequireFailureOfGestureRecognizer:メソッドを使用して、必要なときにtrueを返すことができるように、あなたのビューコントローラでUIGestureRecognizerDelegateプロトコルを実装する必要があります。あなたは、それぞれ、第1及び第2のパラメータを比較することで、あなたのパンジェスチャ認識装置とスクロールビューのピンチジェスチャー認識機能を制限述語を形成することができます

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRequireFailureOfGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool { 
    return gestureRecognizer == myPanGestureRecognizer && otherGestureRecognizer == scrollView.pinchGestureRecognizer 
} 

そのように、スクロールビューのジェスチャー認識装置に障害が発生するまで、後者が待っています状態.Recognizedに移行する前に詳細はApple Gesture Recognizer Programming Guideにあります。

selfにあなたのパンジェスチャー認識装置のデリゲートのプロパティを設定することを忘れないでください:

myPanGestureRecognizer.delegate = self 
+0

はあなたの助けをいただき、ありがとうございます。私はパンのデリゲートを設定し、スクロールビューのピンチをズームするためにfalseを返します。しかし、今私たちがピンチでなければ、パンは決してイベントを開始しません。私が逃したものは何か分かりますか? –

+0

Mmmm ...私はそれを試しただけで、上のデリゲートプロトコルメソッドを追加しなくても、すべてがすぐに使えるようです。スクロールビューの 'minimumZoomScale'と' maximumZoomScale'を正しく設定してもよろしいですか? – J2b

関連する問題