맞춤 주석이있는 iOS 앱이 있습니다.MKAnnotationView를 탭하여 선택 취소하고 콜 아웃을 숨기기
- 가 나는 그것이 콜 아웃의 쇼에 한 번 MKAnnotationView을 탭 할 수 있도록하려는
- 를 (잘 작동) 그리고 내가 주석을 선택 취소 할 수 MKAnnotationView를 두 번 누르고 그의 선을 숨기려면 특수 효과 (iOS5에서는 작동하지만 iOS6에서는 작동하지 않음).
didSelectAnnotationView는 어노테이션의 초기 선택을 위해서만 호출되는 것으로 알고 있습니다. ([1] : Selecting a MapView Annotation Twice )이 기사와 필자가 읽은 다른 기사 ([2] : ios mapkit closing annotation callouts by tapping the map)를 기반으로 MKAnnotationView를 선택하면 UITapGestureRecognizer가 필요한 추가 탭을 감지하는 것처럼 보입니다.
그래서 저는 UITapGestureRecognizer를 사용하고 있습니다. 이미 선택되어있을 때 주석 뷰에서 추가 탭을 올바르게 감지하고 탭을 인식하고 숨기기/선택 취소 할 때 deselectAnnotation을 호출합니다. 각각 콜 아웃/주석. 그것은 iOS5에서 훌륭하게 작동하지만, iOS6에서는 절반 만 작동합니다.
iOS6에서는 탭 제스처 인식기가 호출되고 콜 아웃을 숨기고 주석을 선택 취소하고 모든 것이 잘되는 코드를 호출하지만 selectAnnotationView 메소드 어떻게 든 호출되고 내 콜 아웃이 다시 나타나고 주석이 다시 선택됩니다.
필자는 탭 제스처 인식기에서 주석보기를 선택 취소 한 직후 탭 이벤트가 여전히 활성화되어 있으며 mapView가 터치 이벤트를 감지하여 selectAnnotationView를 호출하므로 이제 이 선택 취소 된 주석이 다시 선택됩니다.
나는 그것이 iOS6에서만 일어나는 이유에 대해 잘 알지 못하지만 원하는 행동을 처리하기위한 다른 아이디어에 대한 의견을 기다리고 있습니다.
당신이 코드를 표시 할 수 있습니다으로 제스처를 제거하기 위해 위조지도 탭 donMt에 주석을 해제? – james075