2017-10-18 3 views
0

나는 모든 종류의 UIGestureRecognizer이있는 복잡한 뷰 계층 구조를 가지고 있습니다.UIGestureRecognizer를 오버레이보기에서 차단하는 방법은 무엇입니까?

그때 오버레이 UIView을 제시하고 사용자가이 오버레이와 상호 작용하는 경우에, 나는 이 그 오버레이 아래 을 배치하고 화재에 대한 제스처 인식기를 원하지 않는다. 현재, 예를 들어 드래그하면 제스처 인식기가 오버레이보기 아래에서 실행되어 실행됩니다.

잠재적 인 스파게티 코드 (예 : 뷰 계층 구조를 반복하고 제스처 인식기를 비활성화)로 이어지는 해결책을 피하고 싶습니다.

비슷한 질문 (들) :

+0

명백한 질문 : 예를 들어

당신은 무엇을하려고 했습니까? 검색해주세요, 나는 이것이 여러 번 토론되었거나 여기에 응답되었다고 확신합니다. –

+0

@ meaning-matters 놀랍게도 나는이 질문에 대해 합리적으로 깨끗한 답을 찾을 수 없었다. 내가 시도한 것에 관해서는 인기가 없을지 모르지만, 나는 의도적으로 대답을 편향시키지 않기 위해 그것을 버렸다. 귀하의 요청의 결과로, 나는 질문 공간을 오염시키지 않는 것처럼 잠재적 인 대답을 게시했습니다 (다시 말하면, 인기가 없을지 모르지만, 미안합니다!). 나는 다른 곳에서 깨끗한 답을 찾지 못했기 때문에 다른 사람들이 갖고있는 창조적 인 답을보고 싶어합니다. – kgaidis

답변

0

유일한 종류-의 청소 나 오버레이 뷰 제스처 인식기의 모든 유형을 추가하고 생각할 수있는 솔루션 그래서 그것들은 아래 것들 대신에 해고 당한다.

overlayView.addGestureRecognizer(UIPanGestureRecognizer(target: nil, action: nil)) 
overlayView.addGestureRecognizer(UILongPressGestureRecognizer(target: nil, action: nil)) 
overlayView.addGestureRecognizer(UISwipeGestureRecognizer(target: nil, action: nil)) 
관련 문제