2010-12-23 6 views
4

UIControl을 확장 한 내 자신의 사용자 지정보기를 만들었습니다. 이 사용자 정의보기에는 고유 한 터치 구현이 있습니다. 나는 touchesBegan, Moved, Ended 및 Canceled 메소드를 구현했다.여러보기가있을 때 멀티 터치를 비활성화하는 방법은 무엇입니까?

주보기 컨트롤러에서이보기의 인스턴스를 여러 개 만들었습니다. 따라서 화면에는 많은 맞춤 검색 버튼이 있습니다.

내 앱에서 멀티 터치를 사용하지 않도록 설정하려고합니다. 맞춤 버튼 하나를 클릭하면 다른 버튼이 응답하지 않아야합니다.

사실, 이것을 구현하기가 쉽습니다. 일부 버튼을 누른 상태에서 터치가 끝날 때까지 다른 버튼의 userInteractionEnabled 속성을 NO로 설정할 수 있습니다.

하지만 문제는 두 개 이상의 탭을 동시에 탭하면 두 개 이상의 touchesBegan 메서드가 동시에 작동하고 메시지 전달이 엉망입니다.

multiTouchEnabled = NO 및 exclusiveTouch = YES로 설정하려고했으나 여전히 작동하지 않았습니다.

어떻게하면 응용 프로그램에서 멀티 터치를 비활성화 할 수 있습니까?

고맙습니다.

답변

6

NO이 아닌 exclusiveTouch ~ YES으로 설정해야합니다 (기본값 임). 속성의 이름은 해당 기간 동안 모든 터치 이벤트를 독점적으로 수신하는 뷰를 나타냅니다.

+0

오 .. 죄송합니다. 나는 그들을 잘못 입력했다. exclusiveTouch를 YES로 설정했지만 여전히 작동하지 않았습니다. – pnmn

+0

@kyu'touchesBegan : withEvent :'와 친구들의 구현에서'super'를 호출해야 할 수도 있습니다. 왜냐하면 수퍼 클래스에는'exclusiveTouch'를 올바르게 처리하기위한 논리가 포함될 수 있기 때문입니다. –

관련 문제