2010-04-10 9 views
0

UIView를 MKMap에 추가하여 맵을 이동할 때 UIView도 맵과 함께 이동합니다. 일반적으로 UIView (또는 UI 구성 요소)를 MKMap에 추가 한 다음 주변을 확대/축소하는 경우 , UIView는 초기 위치에서 고정 된 채로 남아 있습니다. UIView도 함께 이동합니다.MKMap에 UIView를 추가하는 방법?

답변

1

이것을 정확하게 이해한다고 가정하면 MKMapView의 특정 좌표에 사용자 정의보기를 추가 할 수 있습니다.

그렇다면 MKMapView는이를 Annotations이라고하고 MKMapView 클래스는 addAnnotation : 및 addAnnotations : 메서드를 노출합니다. 이러한 메소드는 MKAnnotation 프로토콜을 준수하는 객체를 전달해야합니다. 즉, 객체가 제목, 부제 및 좌표 (CLLocationCoordinate2D)를 제공해야 함을 의미합니다.

중요 사항; 이 개체는 UIView가 아니라 단순히보기에 데이터를 제공하는 개체입니다.

실제로 새로 추가하려면 MKMapViewDelegate 프로토콜을 구현하는 객체가 필요합니다.이 인터페이스는 사용자의 mapview 등을 포함하여 UIViewController 하위 클래스를 사용하는 것이 좋습니다.

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation { 

    // Instiate your UIView. The annotation passed into this method is the annotation your passed to the mapview's addAnnotation method, so you can cast this and access any application specific data. 
} 

그리고 꽤 많이 있습니다. 주석을 mapview에 추가하면 mapview는 대리인에게 해당 주석에 대한보기를 제공 할 것을 요청합니다.

+0

하지만 실제로 사용자가 Apple의 기본 설명 풍선을 표시하는 대신 Pin으로 탭하면 내 사용자 정의보기를 표시하려고합니다. – Matrix

+0

그래서 내가하려는 것은 입니다. 1) 콜 아웃 버블을 비활성화하십시오. 2) 콜 아웃 버블 대신 사용자 정의보기를 표시합니다. – Matrix

+0

이 경우 어떻게해야합니까 ?? – Matrix

1

MKAnnotationView 클래스 참조, 특히 설명 선보기 관리에 관한 부분을 살펴볼 수 있습니다.

제어 수준이 충분하지 않은 경우 here을 살펴보십시오.

관련 문제