Ааа, понял! Это работает фантастически, спасибо большое !!

я есть MKMapView с несколькими наложениями. Работает все просто отлично, и невероятно, насколько просто это работает. Однако есть одна вещь, которую я не могу заставить работать. Идея проста: когда пользователь касается области, которая покрыта наложением, должен появиться выноска с некоторой информацией об этом наложении. Оверлеи всеMKPolygons, которые следуют протоколу MKOverlay и, следовательно, протоколу MKAnnotation.

Протокол MKOverlay соответствует протоколу MKAnnotation. В результате все оверлейные объекты также являются объектами аннотаций и могут рассматриваться как один или оба в вашем коде. Если вы решите рассматривать объект наложения как оба, вы отвечаете за управление этим объектом в двух местах. Если вы хотите отобразить как представление наложения, так и представление аннотации, вы должны реализовать оба метода mapView: viewForOverlay: и mapView: viewForAnnotation: в вашем делегате приложения. Это также означает, что вы должны добавить и удалить объект как из оверлеев, так и из массивов аннотаций вашей карты.

Это исходит из документов Apple. Я попробовал что-то вроде этого:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {

      MKAnnotationView *aView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:nil];
      aView.canShowCallout = YES;
}

Но это не похоже на работу. Я пытался использовать распознаватели жестов, но я не знаю, как показать выноску, кроме как с помощьюcanShowCallOut свойство...

Ответы на вопрос(1)

Ваш ответ на вопрос