1

AnnotationView와 함께 MKMapView을 만들고 CalloutBubbles 등을 사용하고 있습니다. 이제지도 뷰를 전체 화면 모드로 표시하려면 UITapGestureRecognizer을 추가하고 Apple의지도 앱에서 잘 수행했으면 좋겠습니다. NavigationBarItems 등을 숨기는 코드를 만들었지 만 제대로 작동하지만 내 문제는 탭 동작이 여전히 주석을 선택하는 데 사용된다는 것입니다. 그래서 PinView를 만질 때마다 doubleTap을 만들 때마다 코드가 실행되고지도 뷰가 콜 아웃을 열지 않고 전체 화면으로 이동합니다. 버블, 줌 등AnnotationView 선택에서 분리 된 MKMapView에 UITapGestureRecognizer를 추가하십시오.

여기 내 질문입니다. MKMapView의 배경에있는 탭과 핀 위의 탭 사이를 분리 할 가능성이 있습니까?

2014년 2월 24일 15 : 27 : 나는 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 기능을 사용하여 내지도보기의 주석 핀에 하나의 탭을 만들 때

나는이 설명을 기록 편집 31.257 MyApplication [807 : 70b] ; 타겟 = < (조치 = MySetFullScreenMap, 대상 =) >>

2014년 2월 24일 15 : 27 : 31.257 하여 MyApplication [807 : 70B] < _MKUserInteractionGestureRecognizer : 0xc80c470; baseClass = UIGestureRecognizer; 상태 = 시작; cancelsTouchesInView = NO; delaysTouchesEnded = NO; 보기 =; 타겟 = < (조치 = handleTouch :, 대상 =) >>

2014년 2월 24일 15 : 27 : 31.258 하여 MyApplication [807 : 70B] ; 타겟 = < (조치 = MySetFullScreenMap, 대상 =) >>

2014년 2월 24일 15 : 27 : 31.258 하여 MyApplication [807 : 70B] < _MKUserInteractionGestureRecognizer : 0xc80c470; baseClass = UIGestureRecognizer; 상태 = 시작; cancelsTouchesInView = NO; delaysTouchesEnded = NO; 보기 =; 타겟 = < (조치 = handleTouch :, 대상 =) >>

2014년 2월 24일 15 : 27 : 31.376 하여 MyApplication [807 : 70B] ; 타겟 = < (조치 = MySetFullScreenMap 대상 =) >>

2014년 2월 24일 15 : 27 : 31.376 하여 MyApplication [807 : 70B] ; 타겟 = < (조치 = handleLongPress :, 대상 =) >>

2014년 2월 24일 15 : 27 : 31.377 하여 MyApplication [807 : 70B] ; target = < (조치 = MySetFullScreenMap, 대상 =) >>

2014-02-24 15:27:31377 MyApplication [807 : 70b] < _MKUserInteractionGestureRecognizer : 0xc80c470; baseClass = UIGestureRecognizer; 상태 = 종료 됨; cancelsTouchesInView = NO; delaysTouchesEnded = NO; 보기 =; 타겟 = < (조치 = handleTouch :, 대상 =) >>

2014년 2월 24일 15 : 27 : 31.377 하여 MyApplication [807 : 70B] ; 타겟 = < (조치 = MySetFullScreenMap 대상 =) >>

2014년 2월 24일 15 : 27 : 31.377 하여 MyApplication [807 : 70B] ; target = < (action = handleTap :, target =)>; must-fail = { ; target = < (action = handleDoubleTap :, target =)>; numberOfTapsRequired = 2>, ; 타겟 = < (조치 = handlePan :, 대상 =) >> }>

2014년 2월 24일 15 : 27 : 31.378 하여 MyApplication [807 : 70B] ; 타겟 = < (조치 = MySetFullScreenMap 대상 =) >>

2014년 2월 24일 15 : 27 : 31.378 하여 MyApplication [807 : 70B] ; target = < (action = handleTwoFingerTap :, target =)>; numberOfTouchesRequired = 2>

2014년 2월 24일 15 : 27 : 31.378 하여 MyApplication [807 : 70B] ; 타겟 = < (조치 = MySetFullScreenMap 대상 =) >>

2014년 2월 24일 15 : 27 : 31.379 하여 MyApplication [807 : 70B] ; 타겟 = < (조치 = handleTwoFingerLongPress :, 대상 =) >>

2014년 2월 24일 15 : 27 : 31.379 하여 MyApplication [807 : 70B] ; 타겟 = < (조치 = MySetFullScreenMap 대상 =) >>

2014년 2월 24일 15 : 27 : 31.380 하여 MyApplication [807 : 70B] ; 타겟 = < (조치 = handlePinch :, 대상 =) >>

2014년 2월 24일 15 : 27 : 31.380 하여 MyApplication [807 : 70B] ; 타겟 = < (조치 = MySetFullScreenMap 대상 =) >>

2014년 2월 24일 15 : 27 : 31.380 하여 MyApplication [807 : 70B] ; target = < (action = handlePan :, target =)>; must-fail-for = { ; target = < (조치 = handleTap :, target =) >> }>

2014-02-24 15:27:31380 MyApplication [807 : 70b] ; 타겟 = < (조치 = MySetFullScreenMap 대상 =) >>

2014년 2월 24일 15 : 27 : 31.381 하여 MyApplication [807 : 70B] ; 타겟 = < (조치 = handleRotation :, 대상 =) >>

2014년 2월 24일 15 : 27 : 31.381 하여 MyApplication [807 : 70B] ; 타겟 = < (조치 = MySetFullScreenMap 대상 =) >>

2014년 2월 24일 15 : 27 : 31.381 하여 MyApplication [807 : 70B] ; 대상 = < (조치 = handleTilt :, 대상 =) >>

2014년 2월 24일 15 : 27 : 31.381 하여 MyApplication [807 : 70B] ; 타겟 = < (조치 = MySetFullScreenMap 대상 =) >>

2014년 2월 24일 15 : 27 : 31.382 하여 MyApplication [807 : 70B] ; 타겟 = < (조치 = handleLongPress :, 대상 =) >> 각 경우 상부 로그

는 "gestureRecognizer"이며, 하나의 하부는 "otherGestureRecognizer"이다.

은 그냥 UIGestureRecognizer 클래스가 연결되어 있는지 뷰의 속성이

+0

이미이 문제에 대한 해결책을 게시했습니다. http://stackoverflow.com/questions/17200910/mkannotationview-and-tap-detection/17203442#17203442 – HepaKKes

+0

@HepaKKes이 솔루션을 알고 있지만 핵심은 무엇입니까? 나는 많은 터치 이벤트가있다. "shouldRecognizeSimultaneously [...]"함수에 중단 점을 설정하고 mapview에서 한 번 탭하면 매번 mor이 발생한다. 3 개의 동시 발생 이벤트보다 더 많아서 탭 인식기와 MKAnnotationView 중 하나를 결정하는 방법을 모르겠습니다. – user3191334

+0

제발, 제발 각각의 MKAnnotationView에 제스처 인식기를 추가하는 것을 이해합시다. – HepaKKes

답변

0

내 기능 "MySetFullScreenMap"에 대한 UILongPressGestureRecognizer과 UITapGestureRecognizer을 (추가했습니다. 그 도움을 당신이 도청 된 내용을 결정하기 위해 수 ?

+0

감사합니다! (UIGestureRecognizer *) gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer : (UIGestureRecognizer *)가 나는 두 제스처 인식기 (MKUserInteractionGestureRecognizer 및 UITapGestureRecognizer)를 얻을 을 otherGestureRecognizer'하지만 불행히도 나는를 찾을 수 없습니다 (BOOL) gestureRecognizer 것은 - 가': 나는 그것을 위임 기능을 당신의 방법을 시도 MKMapView의 기본값과 주석의 탭을 구분하는 메모입니다. 누군가가 그 해결책을 알고 있습니까? – user3191334

관련 문제