0

하나의 UIView (파란색)가 있었고 제스처 인식기를 감지하고 싶습니다. 이보기에서 팬 및 탭 제스처를 잡으려고합니다. 사용자가이보기를 탭하면이 터치/탭을 부모보기 (녹색)로 "전달"하고 싶습니다.iOS, Swift 2.3 - UIPanGesture가 활성화되어 있지만 동일한 UIView에서 UITapGesture가 비활성화되었습니다.

enter image description here

내 블루의 UIView :

class SwipeView: UIView, UIGestureRecognizerDelegate { 

    var tap: UITapGestureRecognizer! 
    var pan: UIPanGestureRecognizer! 

    func setup() { 
     tap = UITapGestureRecognizer(target: self, action: #selector(Swipe.onTap)) 
     tap.delegate = self 
     tap.enabled = true 
     self.addGestureRecognizer(tap) 

     pan = UIPanGestureRecognizer(target: self, action: #selector(Swipe.onPan)) 
     pan.delegate = self 
     pan.enabled = true 
     self.addGestureRecognizer(pan) 

     self.backgroundColor = .blueColor() 
    } 

    func onTap() { 
    } 

    func onPan() { 
    } 

    override func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool { 
     return false 
    } 
} 

내가 gestureRecognizerShouldBegin이 = 거짓 녹색 UIView의 모든 이벤트를 잡을 반환 경우에도 마찬가지입니다. 그렇다면 이것을 어떻게 기능적으로 할 수 있습니까? Thx 도움.

+0

참조하십시오 http://stackoverflow.com/questions/15307157/pan-and-tap-gesture-recognizer-for-same-view-which-need -to-fail-for-the-other –

+0

@AbuUlHassan, Thx for link,하지만 주된 문제는 터치/이벤트를 부모보기로 "전달"하는 방법입니다. 파란색보기를 탭하면 녹색으로보기 (파란색보기 아래에있는 버튼)의 이벤트를 수신하고 싶습니다. 파란색으로 위치를 정할 때 버튼이있는 위치에 작업 버튼이 표시됩니다. –

+0

그런 다음 Bringviewtofront 메서드를 사용해야합니다. –

답변

0

과 같이 부모에게 제공 :

func onTap(tapGestureRecognizer: UITapGestureRecognizer) { 
    self.superview?.gestureRecognizerShouldBegin?(tapGestureRecognizer) 
} 
+0

작동하지 않습니다. 어떤 이벤트도 수신하지 않습니다. –

+0

수퍼 뷰를 새 대리자로 만들 수 있습니다. – Thomm