2013-02-18 65 views
1

我有一個UIBezierPath,我想用containsPoint方法執行命中測試。通過使用UIGestureRecognizerDelegate方法shouldReceiveTouch,我可以通過這種方式檢測到實際貝塞爾路徑上的觸摸,並允許將路徑之外的觸摸傳遞給響應者鏈(這是期望的行爲)。ShouldReceiveTouch持續手勢

這可以很好地與水龍頭一起使用,但是由於shouldReceiveTouch不包含touchesMoved事件,所以在連續手勢(即平移)時會出現問題。

我可以使用UIGestureRecognizerDelegate方法gestureRecognizerShouldBegin阻止整個連續手勢,但手勢不會傳遞給下一個響應者。

是繼承UIGestureRecognizer,並得到touchesMoved調用shouldReceiveTouch的方式去呢?或者我可以通過剪輯路徑來實現這一點,這是否也會導致在剪輯區域外傳遞事件?

感謝

回答

0

我結束了覆蓋pointInside:在繪製貝塞爾路徑我UIView子類withEvent。這樣我就可以處理離散和連續的手勢,並將事件轉發給超級視圖。