2011-12-08 3 views
0

기본적으로 정확히 같은 모양 인 MKAnnotation을 만들고 싶습니다. 유일한 차이점은 제목 왼쪽에 아이콘이 있다는 것입니다.iOS지도 - 아이콘이있는 MapKit 아이콘 설명

원본과 동일한 모양과 느낌으로이 기능을 만들 수있는 조언이나 코드는 무엇입니까?

감사합니다.

답변

0

도움이 될 수 있습니다. (질문을 잘못 이해 한 경우 "아이콘"과 "제목"이 무엇을 의미하는지 조금 더 설명해 주시겠습니까?)

설명 된 주석보기 이미지의 위치를 ​​기준으로 설명 선 위치를 이동할 수 있습니다. documentation for MKAnnotationView :

calloutOffset 오프셋 (픽셀)되는 위치로 인출 거품.

@property (세분화) CGPoint calloutOffset

토론

이 속성은 선 기포를 이동하는 거리를 추가로 판정한다. 이 속성을 (0, 0)으로 설정하면 설명 풍선의 고정 점이 주석 보기 프레임의 상단 중심점에 배치됩니다. 양수 오프셋 값을 지정하면 콜 아웃 이 버블 다운되고 오른쪽으로 이동하고 음수 값을 지정하면 이 왼쪽으로 이동합니다.

이미지의 위치를 ​​변경할 수도 있으며, 설명서에서도이 이미지를 설명합니다. 그러나 설명 선 위치는 항상 주석 뷰 이미지의 상단 중심점을 기준으로 설정됩니다.

"주석보기"를 여러 속성 및 동작이있는 클래스의 인스턴스로 생각하는 것이 좋습니다. 이미지는 예를 들어지도 핀일 수 있습니다. 콜 아웃은 일반적으로 정보 거품이라고도하지만 공식적으로 콜 아웃 (callout)이라고합니다. 나는 문서가 "annotation view"와 "image"를 서로 바꾸어서 사용하는 것에 조금은 어색하다고 생각한다. 주석보기의 프레임 참조에서.

0

예. 이렇게 할 수 있습니다. 델리게이트 - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id)annotation을 구현해야합니다.

다음은 도움이되는 몇 가지 코드입니다.

-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id)annotation{ 
    static NSString *[email protected]"ParkingAnnotationIdentifier"; 

    if([annotation isKindOfClass:[MyAnnotationClass class]]) 
    { 
     //Try to get an unused annotation, similar to uitableviewcells 
     MKAnnotationView *annotationView=[mapView dequeueReusableAnnotationViewWithIdentifier:parkingAnnotationIdentifier]; 

     //If one isn't available, create a new one 
     if(!annotationView) 
     { 
      annotationView=[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:parkingAnnotationIdentifier]; 

      //Here's where the magic happens 
      annotationView.image=[UIImage imageNamed:@"someImage.png"]; 
     } 
     return annotationView; 
    } 
    return nil; 
} 

또한 this 내가 "제목"에 의해, 그 있으리라 믿고있어, 당신은 주석 뷰의 콜 아웃을 참조하고, "아이콘"으로 당신이 주석 뷰의 이미지를 의미

관련 문제