2

URLに基​​づいてMKPinAnnotationViewの画像をプログラムで設定することは可能ですか? これまでのところ、私はこれを持っています:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation {
static NSString *identifier = @"infl8Node";

if ([annotation isKindOfClass:[infl8Node class]]) {
    MKPinAnnotationView *annotationView = (MKPinAnnotationView *) [_mapView dequeueReusableAnnotationViewWithIdentifier:identifier];
    if (annotationView == nil) {
        annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier];
    } else {
        annotationView.annotation = annotation;
    }

    annotationView.enabled = YES;
    annotationView.canShowCallout = YES;
    annotationView.image = [UIImage imageNamed:@"invisible.png"];
    annotationView.animatesDrop = YES;

    //Add image from url
    NSURL *url = [NSURL URLWithString: @"http://cdn2.raywenderlich.com/downloads/arrest.png"];
    UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL:url]];
    UIImageView *imgView = [[UIImageView alloc] initWithImage:image];
    [annotationView addSubview:imgView];

    return annotationView;
}
return nil;
}

ただし、次のような結果になります。 ピンの画像

誰かがこれを行ったことがありますか、またはこれを達成する方法について良い考えを持っていますか?

4

1 に答える 1

1

MKAnnotationViewの代わりに使用してくださいMKPinAnnotationView。交換してください

 annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier];
        replace use MKAnnotationView here

編集:1つの解決策は使用custom animationです。

カスタムアニメーションを使用してMKAnnotationViewsをドロップする方法の例として、 MKAnnotationViewアニメーションの例を参照してください。

于 2012-11-19T08:38:17.313 に答える