다음 작업을 수행하고 싶습니다.탭을 캡처하지만 다른 모든 제스처에 투명하게 나타나는 UIView 만들기
시나리오 : 사용자가 특정 텍스트 필드에 입력하는 동안 iOS 키보드가 화면 상에 표시됩니다. 사용자는 키보드와 텍스트 필드 바깥 쪽 아무 곳이나 눌러 키보드를 닫을 수 있습니다 (보이는 버튼을 활성화하지 않고). 또한 을 키보드 외부로 드래그하고 스크롤 가능한보기의 일부 배열에서 일반적인 끌기 동작을 관찰 할 수 있습니다.
개념적으로, 나는이 작동하는 화면의 대부분 UIView
"포함"배치하고 있습니다 있도록 : 사용자가 커버에 도청
경우에, 나는 그 탭을 캡처 (나는 할 수 있도록 예 : 키보드를 닫습니다.
UIView
하위 클래스의 터치 이벤트를 가로 채거나 탭 제스처 인식기를 사용하면 쉽게 달성 할 수 있습니다.사용자가 커버를 드래그 후 커버 는 또는 앞으로 이러한 접촉이 무시하면
; 이것들은 커버가없는 것처럼 아래의 레이어들에 의해 수신됩니다.
그래서 사용자는 표지 아래의 콘텐츠를 스크롤 할 수 있지만 표지 아래의 콘텐츠는 스크롤 할 수 없어야합니다. 키보드 및 텍스트 필드의 "외부"탭은 키보드 (및 커버)를 닫아야하지만 아무 것도 활성화하지 않아야합니다.
어떻게하면됩니까?
터치 위임 메서드를 구현하고 스 와이프하기 위해 뷰 뒤에있는 뷰에 터치를 전달하는 것을 고려해야합니다. '- (void) touchesBegan : (NSSet *)은 withEvent : (UIEvent *) 이벤트를 터치합니다. { [otherView touchesBegan : touches withEvent : event]; } 또 다른 방법은 UIPanGestureRecognizer를 구현하고 cancelsTouchesInView = YES를 'UIPanGestureRecognizer * gr = [[UIPanGestureRecognizer alloc] initWithTarget : self action : @selector (handlePan)];으로 설정하는 것입니다. [gr setCancelsTouchesInView : 예]; [myButton addGestureRecognizer : gr]; [gr 출시]; ' – iDev
@mjh, 혹시 이것에 대한 해결책을 찾았습니까? – kpozin