5

開示ボタンのある MapView に注釈を追加したいのですが、わかりません。

MKAnnotation プロトコルに準拠する PlaceMark クラスを作成し、MapView を作成して PlaceMark を追加します。

// Add annotation information
PlaceMark *venuePlacemark = [[PlaceMark alloc] initWithCoordinate:location];
venuePlacemark.locationTitle = [locationDictionary valueForKey:VENUE_NAME_KEY];
venuePlacemark.locationSubtitle = @"Touch to show in Google Maps";

// Create the accessory button on the placemark
[venueMap addAnnotation:venuePlacemark];
[venueMap setRegion:region animated:TRUE];
[venueMap regionThatFits:region];

これはすべて機能し、タッチすると正しい吹き出しテキストが表示されるピンが表示されます。コールアウトに開示ボタンを追加する方法がわかりません。これが初歩的で申し訳ありませんが、助けていただければ幸いです。

デイブ

4

1 に答える 1

9

私はそれを理解したと思います...次のデリゲートメソッドを実装しました:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
    MKPinAnnotationView *dropPin=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"venues"];

    UIButton *disclosureButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
    [disclosureButton addTarget:self action:@selector(mapCallOutPressed:) forControlEvents:UIControlEventTouchUpInside];

    dropPin.rightCalloutAccessoryView = disclosureButton;
    dropPin.animatesDrop = YES;
    dropPin.canShowCallout = YES;

    return dropPin;
}
于 2009-12-06T20:33:42.727 に答える