2017-02-15 69 views
1

我目前在自定義視圖控制器上運行單頁swift應用程序(適用於iOS)。在該視圖控制器中,我嵌入了另一個自定義UIView來顯示一些內容/處理某些用戶交互。在子視圖上忽略/攔截swift

我想知道是否有一種方法來攔截在自定義視圖控制器中註冊的UISwipe,並在嵌入視圖中發生swift忽略它。我知道,水龍頭,我可以把我的視圖控制器爲委託敲擊手勢識別,並完成類似如下:

// not exact syntax 
func gestureRecognizer(touch){ 
    if (touch.view == self.embeddedView || (touch.view.isDescendantOf(embeddedView))!){ 
      return false 
     } 
    return true 
} 

但是我無法找到,做同樣的揮筆任何功能。有人能指出我正確的方向嗎?

+0

它不清楚你在這裏想要什麼:只有在*嵌入視圖上*開始*時忽略刷卡,還是應該忽略該視圖上的任何運動?前者是微不足道的,後者可能更困難。 –

+0

抱歉不太清楚。如果在嵌入式視圖中啓動,我想忽略滑動。 – finn

回答

3

設置自定義視圖控制器的滑動手勢和委託覆蓋shouldReceiveTouch方法。

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool { 
    return !CGRectContainsPoint(embeddedView.bounds, touch.locationInView(embeddedView)) 
} 
+0

非常感謝!我爲其+1了,但沒有足夠的代表顯示它。非常感謝。 – finn

+0

@finn你可以(並且應該如果它回答了你的問題)通過點擊答案左邊的灰色複選標記接受答案。 – shallowThought

+0

@finn請接受答案,如果它的正確,請參閱http://stackoverflow.com/help/someone-answers –

-1

有一個UISwipeGestureRecognizer至極u能實現這樣的:

let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(self.swipeRightDetected)) 
self.embeddedView.addGestureRecognizer(swipeRight) 

看看這個答案詳細信息:https://stackoverflow.com/a/24215844/5664183

+0

我瞭解如何實施滑動手勢識別器。我試圖找出如何在我的嵌入式視圖中開始時忽略滑動。對不起,如果不明確。 – finn