2012-04-16 8 views
2

맵의 일반 핀 대신 사용자 정의 이미지를 설정하고 싶습니다. 나는 또한 그것이 열리고 각 하나에 대한 드롭 주석을 추가 할 수 있기를 바랍니다.MKPinAnnotationView 사용자 정의 이미지

의견이 있으십니까?

편집 : 여기에 내가

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(ActivityAnnotation *)annotation 
{ 
    static NSString* AnnotationIdentifier = @"AnnotationIdentifier"; 
    MKPinAnnotationView* pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationIdentifier]; 
    pinView.animatesDrop=YES; 
    pinView.canShowCallout=YES; 
    UIImage *image = [UIImage imageNamed:@"Map_Pin"]; 
    pinView.image = image; 
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; 
    imageView.frame = CGRectMake(-2.5,6,27,30); 
    [pinView addSubview:imageView]; 
    UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; 
    rightButton.tag = [activities indexOfObject:annotation.activity]; 
    [rightButton addTarget:self action:@selector(showDetails:) forControlEvents:UIControlEventTouchUpInside]; 
    pinView.rightCalloutAccessoryView = rightButton; 

    return pinView; 
} 

모든 것이 잘 작동하는 모든이지만, 원래 핀은 내 기본 이미지 뒤에 표시지고 유지합니다. 어떻게 지울 수 있습니까?

답변

6

MKPinAnnotationView를 사용하지 말고 대신 MKAnnotationView를 사용하십시오. MKPinAnnotationView는 기본적으로 핀을 표시하며 사용자가 색상을 사용자 정의 할 수 있도록 허용합니다 (실수하지 않은 경우). MKAnnotationView는 커스텀 핀 이미지를 허용합니다.

+0

예, MKAnnotationView를 사용하는 경우 animatesDrop 애니메이션을 어떻게 만들 수 있습니까? – sergiocg90

+1

그러면 방울로 직접 움직여야합니다. 맵 좌표의 상단을 계산하는 것은 약간 짜증나지만 프레임 위치의 간단한 애니메이션입니다. –

+0

https://gist.github.com/2399387이 요지는 맞춤 애니메이션을 사용하여 내 MKAnnotationViews를 삭제하는 방법의 예입니다. –