Mam niestandardowego adnotacji szpilkę w aplikacji:niestandardowe zmiany adnotacji pin domyślne pin czerwony na długi kranu
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
return [kml viewForAnnotation:annotation type:state];
}
gdzie powrócić widok niestandardowy i uczynić setImage dla annotationView z oznaczenia miejsca, takie jak:
- (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;
}
, ale jeśli długo pukam w moją szpilkę z adnotacją, zmienia ona wygląd na domyślny widok (RedPin). Nie mogę zrozumieć, która metoda jest wywoływana po długim naciśnięciu. Próbowałem grać z UITapGestureRecognizer, ale się nie dowiedziałem. Jeśli po prostu kliknę pinezkę adnotacji, wszystko działa poprawnie, a widok niestandardowego widoku notatek nie zniknie. Możesz zobaczyć, co mam na myśli na tym zrzucie ekranu:
Dlaczego więc zmienia się wygląd szpilki adnotacji po długim naciśnięciu?
Dzięki. bardzo mi pomogło. –
Pracował jako urok. Faktem jest, że widok MKPinAnnotation jest podklasą z widokiem MKAnnotation z funkcjami, których nie chcesz. – igraczech