0

マップで新しいピンを削除して追加する次のコードがあります。

- (IBAction)setLocation:(id)sender{

    NSMutableArray *toRemove = [NSMutableArray arrayWithCapacity:1];
    for (id annotation in map.annotations)
        if (annotation != map.userLocation)
            [toRemove addObject:annotation];
    [map removeAnnotations:toRemove];


    MKPointAnnotation *annotationPoint = [[[MKPointAnnotation alloc] init]autorelease];
    annotationPoint.coordinate = map.userLocation.coordinate;
    annotationPoint.title = @"Position";
    [map addAnnotation:annotationPoint];

    MKPinAnnotationView *pinView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotationPoint reuseIdentifier:@"Pin"] autorelease];
    pinView.pinColor = MKPinAnnotationColorRed;
    pinView.canShowCallout = YES;
    //pinView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
    pinView.animatesDrop = TRUE;


}

しかし、ピンを設定してもアニメーションは行われませんが、animatesDrop = true に設定したのはなぜですか?

4

2 に答える 2

1

マップに pinView を追加していないようです。

于 2012-07-17T22:44:47.263 に答える
0

これが役立つかもしれないと思います。MKMapViewDelegate (Apple のドキュメント、MapCallouts サンプル プロジェクトを確認してください) メソッドを使用してみてください。

   - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id < MKAnnotation >)annotation
{
    MKPinAnnotationView* customPinView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:nil] autorelease];

// alter properties of the customPinView

    return customPinView; // if you return nil... then the MKPinAnnotation default will be dropped.
}

<MKMapViewDelegate>必ずヘッダーにプロトコルを追加してください

于 2012-07-17T23:21:28.637 に答える