У меня есть пользовательский значок аннотации в приложении:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
return [kml viewForAnnotation:annotation type:state];
}
, где я возвращаю пользовательский вид и делаю setImage для annotationView метки, например:
- (MKAnnotationView *)viewForAnnotation:(id <MKAnnotation>)point type:(int)state
{
// Find the KMLPlacemark object that owns this point and get
// the view from it.
for (KMLPlacemark *placemark in _placemarks) {
if ([placemark point] == point)
{
UIButton *disclosureButton = [UIButton buttonWithType: UIButtonTypeDetailDisclosure];
[[placemark annotationView] setCanShowCallout: YES];
[[placemark annotationView] setRightCalloutAccessoryView:disclosureButton];
if (state == 0)
{
[[placemark annotationView] setImage:[UIImage imageNamed:@"ic_pin_tour.png"]];
}
else
{
[[placemark annotationView] setImage:[UIImage imageNamed:@"ic_pin_point.png"]];
}
return [placemark annotationView];
}
}
return nil;
}
, но если я долго нажимаю на моем булавке аннотации он меняет внешний вид на свой де просмотр ошибок (RedPin). Я не могу понять, какой метод вызывается при долгом нажатии. Пытался поиграть с UITapGestureRecognizer, но не обнаружил. Если я просто коснусь булавки аннотации, все будет работать нормально, и мой пользовательский вид булавки аннотации не исчезнет. Вы можете увидеть, что я имею в виду, на этом снимке экрана:
Итак, почему внешний вид булавки аннотации меняется при долгом нажатии?