Добавление кликабельной аннотации в UIMapView

StackOverflow https://stackoverflow.com/questions/1856399

  •  13-09-2019
  •  | 
  •  

Вопрос

Я хочу добавить аннотацию к 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];

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

Дэйв

Это было полезно?

Решение

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

- (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;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top