MKMapKit의 한계에 상당히 좌절감을 느낍니다. 현재의 문제는 주석보기의 z- 순서와 관련이 있으며, 특히 터치와 관련이 있습니다. 기본 z 순서를 사용하면 mapkit에서 다음을 제공합니다.MKAnnotationViews의 Z 순서 지정
- 주문이 임의로 표시됩니다. z 순서는 주석이 추가 된 순서와 관련이 없습니다.
- 하나의 특수 효과가 다른 특수 효과의 위에 놓이면 상위 특수 효과를 터치하면 일반적으로 아래쪽 특수 효과에 대한 설명 선이 나타납니다. 히트 감지가 그리기 순서를 존중하지 않는 것처럼 보입니다. 그게 뭐야?
나는 전달 된 주석 뷰를 통해 실행
- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views { for (MKAnnotationView * annView in views) { TopBottomAnnotation * ann = (TopBottomAnnotation *) [annView annotation]; if ([ann top]) { [[annView superview] bringSubviewToFront:annView]; } else { [[annView superview] sendSubviewToBack:annView]; } } }
(z 순서를 통해 제어 할 수 있도록 설계되었습니다) 웹에있는 다음 코드와 유사한 것을 사용 # 1를 해결하려고했습니다 mapView : didAddAnnotationViews : 그리고 그들의 z 순서를 조정하면 # 1을 수정하는 것 같습니다. 문제는 이제 설명 선보기가 더 이상 항상 주석보기의 맨 위에 있지 않다는 것입니다. MapKit은 레이어에 대해 매우 혼란스러워 보입니다 (콜 아웃은 모든 주석 뷰 위에 레이어로 그려야 함). 내가받는 모든 MKAnnotationViews가 동일한 수퍼 뷰 (개인 클래스 MKOverlayView)를 가지고 있기 때문에 어떻게 혼란스러워하는지 알 수 있습니다. 어떤 합리적인 디자인이라도이 오버레이보기에 대한 설명 선을 그릴 것이라고 생각할 것입니다.
# 1 또는 # 2를 성공적으로 해결 한 사람이 있습니까?
어디에서 TopBottomAnnotation 클래스를 얻었습니까? –
TopBottomAnnotation은 annotationview 클래스의 이름입니다. –
... 거의 6 년 후에 같은 문제가 발생합니다. 어떻게 수정되지 않았습니까? – Tys