0

나는 첫 번째 응답자로 UIScrollView를 만들었습니다. 그 뒤의보기에서 터치 이벤트를 -touchesEnded:withEvent: 메소드로 유지해야합니다. -nextResponder 메서드를 사용해 보았는데 실패했습니다. 나는 그 뒤에보기에 -touchesEnded:withEvent:을 전달하려고했는데 실패했다.touchesEnded : withEvent : from UIScrollView 첫 번째 응답자

어떻게 작동합니까? UIScrollView는 첫 번째 응답자이거나 다른 방법으로 이벤트를 얻지 않는 한 작동하지 않습니다.

도움 주셔서 감사합니다. 부끄러운 일 Apple의 문서 및 API는 여러 영역에서 끔찍한 것입니다.

+0

둘 다 시도한 방법에 대한 코드를 표시 할 수 있습니까? –

+0

관심을 가져 주셔서 감사하지만 이전에는 작동하지 않는 방식으로 작동 시켰습니다. –

+0

UIScrollView는 슈퍼 뷰를 첫 번째 응답자로 만들지 만 슈퍼 뷰는 첫 번째 응답자 인 경우에도 터치 이벤트를 가져 오지 않습니다. 이것은 이상합니다. –

답변

0

UIScrollView 약간 특이한 방식으로 처리됩니다. 클래스 참조에서 :

스크롤 막대에는 스크롤 막대가 없으므로 스크롤 할 의도와 스크롤 할 의도가 콘텐츠의 하위보기를 추적하는지 알 수 있어야합니다. 이 결정을 내리기 위해 타이머를 시작하여 터치 다운 이벤트를 일시적으로 가로 채고 타이머가 작동하기 전에 접촉하는 손가락이 움직이는 지 확인합니다. 위치가 크게 변경되지 않고 타이머가 발생하면 스크롤 뷰는 추적 이벤트를 컨텐츠 뷰의 수정 된 하위 뷰로 보냅니다. 그런 다음 사용자가 타이머 경과하기 전에 충분히 자신의 손가락을 드래그하면 스크롤 뷰는

하는

스크롤 뷰의 내용보기 내의 서브 뷰는 결국 비 받게됩니다 ... 하위 뷰의 모든 추적을 취소하고 자체 스크롤 수행 스크롤이 스크롤 뷰에 닿습니다.

-hitTest:withEvent:이 스크롤 뷰를 반환하므로 스크롤 뷰의 수퍼 뷰에 터치 이벤트가 표시되지 않으므로 터치 이벤트가 응답자 체인을 부모 뷰로 백업 할 필요가없는 스크롤 뷰로 보내집니다 .

첫 번째 응답은 다른 이벤트의 첫 번째 수신자로 지정되는, 터치 이벤트의 전달에 영향을 미치는 첫 번째 응답자가 응용 프로그램 (일반적으로 UIView의 객체)의 응답자 개체입니다 http://developer.apple.com/library/ios/documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/EventsiPhoneOS/EventsiPhoneOS.html#//apple_ref/doc/uid/TP40009541-CH2-SW5

볼 수 없습니다 터치 이벤트보다 ...

+0

네, 고마워요.하지만 주위를 둘러 볼 생각이 없습니다. 나는 그 주위를 돌아 다녀야한다. 터치 위치를 얻는 데 필요한 영역은 스크롤보기가있는 곳입니다. –

+0

좋아요.하지만보기가 닿아 야합니다. 스크롤 뷰가 스크롤되도록하는 접촉을 뷰에서 받기를 원한다는 것이 더 구체적입니까? – Jonah

+0

터치 할 때 터치가 수신되지 않습니다. :(아마도 시뮬레이터가 제대로 구현하지 못했을 것입니다.) 제 아이폰을 사용해 보겠습니다. 당신의 도움에 감사드립니다. –