0

前文

MKMapView と MapAnnotation を使用して地図注釈を実装しました。タップすると、次の図に示すようにタイトル ビューが表示されます。

マップ アノテーション タイトル

上記のマップ注釈を実装するために、次の LOC を使用しました。

// VENUE 1 PIN.

CLLocationCoordinate2D venue1Location = CLLocationCoordinate2DMake(-27.5, 153.5);

MapAnnotation *venue1Pin = [[MapAnnotation alloc] initWithTitle:@"1 ONE ST" Location:venue1Location];

注釈委任メソッドのビュー:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
if ([annotation isKindOfClass:[MapAnnotation class]])
{
    MapAnnotation *venueLocationAnnotation = (MapAnnotation *)annotation;

    MKAnnotationView *venueLocationAnnotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:@"customAnnotation"];

    venueLocationAnnotationView.rightCalloutAccessoryView.hidden = YES;

    if (venueLocationAnnotationView == nil)

        venueLocationAnnotationView = venueLocationAnnotation.annotationView;

    else

        venueLocationAnnotationView.annotation = annotation;


        return venueLocationAnnotationView;

}
else
{
    return nil;
}

}

質問

前述のマップ アノテーション タイトル ビューから情報ボタンを削除するにはどうすればよいですか?

4

3 に答える 3

2

次のステートメントを使用できます。

これには、次のデリゲート メソッドを実装する必要があります。

 - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{
         ...
         venue1Pin.rightCalloutAccessoryView = nil;
         ...
    }
于 2015-02-19T11:11:11.983 に答える
1
-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
if ([annotation isKindOfClass:[MKPointAnnotation class]])
 {
  MKPinAnnotationView *pinView = (MKPinAnnotationView*)[mapView   dequeueReusableAnnotationViewWithIdentifier:@"yourPinIdentifier"];
     if (!pinView)
     {
       pinView.rightCalloutAccessoryView.hidden=YES;
       pinView.animatesDrop = YES;
       pinView.canShowCallout = YES;
     }

    return pinView;
 }
}
于 2015-02-19T11:08:41.110 に答える