2010-11-26 1 views
0

나는 많은 것들을 모두 포함하고있는 작은 UIButtons과 큰 것을 가지고 있습니다. 작은 UIButtons은 모두 UIControlEventTouchDownRepeat에 반응해야하며 선택기를 호출해야합니다. 큰 UIButton은 UIControlEventTouchDragInside에만 반응해야합니다. 그러나 큰 UIButton은 모든 터치를 소모하며 UIControlEventTouchDownRepeat 이벤트는 아래의 작은 버튼에 도달하지 않습니다. 이 문제를 어떻게 해결할 수 있습니까?아래 UIResponders에 UIEvent를 전송하는 방법

답변

0

UIButton이 짧은 버튼보다 작은 버튼을 덮고 있다면 그렇게 할 수 없습니다. 이벤트는 리스폰 더 체인을 통해 전달되며 이벤트가 처리되지 않는 한보기는 해당 이벤트를 슈퍼 뷰로 전달합니다. 보기가 오직 을 가질 수 있기 때문에 당신이하고 싶은 것을 하나의 슈퍼 뷰로 만들 수는 없습니다.

레이아웃을 뒤집을 수 있다면 모든 작은 버튼을 큰 버튼 위에 놓아도 작동 할 수 있습니다. 이벤트가 원하는대로 작동하는지 확실하지 않습니다. 테스트 해봐야합니다. 그러나 작은 버튼으로 처리되지 않는 모든 이벤트는 큰 버튼으로 전달되어야합니다.

UIControlEventTouchDownRepeat으로 터치 한 지점을 캡처 할 수 있다면 터치 아래에있는 작은 단추를 찾아 해당 이벤트를 전달할 수 있어야합니다. 터치 한 좌표의보기와 그보기의 무언가를 위해 작은 단추 (아마도 큰 단추의 수퍼보기와 동일합니까?)의 수퍼보기를 요청해야합니다.

대체 솔루션을 조사하고 원하는대로 터치를 처리하는 사용자 지정 컨트롤을 만드는 것이 좋습니다.

+0

고맙습니다. 레이아웃을 바꾸어보고 UIControlEventTouchDownRepeat와 다른 이벤트를 다음보기로 전달하고 피드백을 제공합니다. 커스텀 컨트롤에 관해서는 UIResponder를 모든것 위에 설치하고 필요한 모든 조치를 취하는 것을 의미합니까? – pierre