2010-02-02 10 views
2

현재 하위보기가 많은 종류의 기본보기가있는 응용 프로그램을 개발 중입니다. 이제는 두 가지 구체적인 하위 뷰가 있으며 한 번에 그 중 하나만 터치 할 수 있기를 바랍니다. 따라서 두 가지 모두 터치 이벤트에 응답 할 수 있어야하지만 둘 다 동시에 응답 할 수는 없습니다. 동시에 터치 할 수 있어야하는 다른 하위 뷰가 있으므로 멀티 터치 또는 exclusiveTouch 속성을 사용할 수 없습니다. 이것에 대한 아이디어가 있으십니까? 어쩌면 나는 싱글 - 터치 영역을 볼 수있을 것이다. 사전에iPhone에서 여러 번 처리하기

감사 (일시적으로) 터치를하지 않은 하나를 (userInteractionEnabled = NO) 비활성화 부모의

답변

0

넣어 논리.

물론 누군가는 여전히 손가락 하나 하나를 동시에 둘 수 있습니다. 어느보기가 접촉의 중심에 가장 가까운 지 파악할 수 있습니다.

+0

다른 하나가 touchesBegan 이벤트를 받았을 때 userInteractionEnabled를 사용하여 하나의보기를 사용 중지했지만 사용자가 말했듯이 동시에 두 가지를 동시에 누를 수 있습니다. 두 번째로 건드린 뷰에 touchesEnded 이벤트를 보내려고했으나 전혀 작동하지 않았습니다. – Russo

+0

동시에 눌려지기는하지만 동시에 두 가지를 동시에 할 수는 없기 때문에 로렌스의 제안이 효과가 있습니다. –

1

읽기 전용 쓰기 속성을 붙이고, 응용 프로그램 대리인 또는 다른 싱글 톤에서 viewBeingTouched으로 전화를 겁니다.nonatomic없이 @property을 사용해야합니다. viewBeingTouched의 값을 확인, touchesBegan에서

  1. :

    는 thusly 히 UIResponder 방법을 재정의하는 클래스의 당신의 두 가지보기 인스턴스를 확인합니다. nil 인 경우 self으로 설정하고 super 구현을 호출합니다. 그렇지 않으면 아무것도하지 마십시오.

  2. touchesEnded에서 viewBeingTouched의 값을 확인하십시오. self 인 경우에는 nil로 설정하십시오.

가져 오는 방법? 터치를 얻는 첫 번째보기는 속성을 잡고 다른 사용자가 속성을 등록하지 못하도록합니다.

+0

Thx, 알았어. 나는 오늘 저녁에 그것을 시도 할 것이다. – Russo