Добавление интерактивной аннотации в UIMapView - PullRequest
5 голосов
/ 06 декабря 2009

Я хочу добавить аннотацию к MapView с кнопкой раскрытия на ней, и я не могу понять это.

Я создал класс PlaceMark, соответствующий протоколу MKAnnotation, а затем создал 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];

Это все работает, и отображается значок, который при прикосновении отображает правильный текст вызова. Я не могу понять, как добавить кнопку раскрытия к вызову. Извините, если это элементарно, и любая помощь будет оценена.

Dave

1 Ответ

9 голосов
/ 06 декабря 2009

Думаю, я понял это ... Реализовал следующий метод делегата:

- (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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...