Jak utworzyć niestandardowy MKAnnotationView i Niestandardowy tytuł adnotacji i podtytuł
Muszę utworzyć powyższy widok adnotacji w MKMapView. Jestem w stanie utworzyć niestandardowy widok adnotacji, ale po dotknięciu adnotacji widok musi być otwarty obraz z tym dużym tekstem, nie jestem w stanie utworzyć tego. Proszę podać mi jakieś linki lub sposób wykonania tego zadania.
1 answers
Aby utworzyć niestandardowy widok adnotacji( zastępujący standardowy pin), możesz po prostu ustawić image
własność MKAnnotationView
w viewForAnnotation
"metoda": {]}
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
if ([annotation isKindOfClass:[MKUserLocation class]])
{
return nil;
}
else if ([annotation isKindOfClass:[YourAnnotationClassHere class]]) // use whatever annotation class you used when creating the annotation
{
static NSString * const identifier = @"MyCustomAnnotation";
MKAnnotationView* annotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:identifier];
if (annotationView)
{
annotationView.annotation = annotation;
}
else
{
annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation
reuseIdentifier:identifier];
}
annotationView.canShowCallout = NO; // set to YES if using customized rendition of standard callout; set to NO if creating your own callout from scratch
annotationView.image = [UIImage imageNamed:@"your-image-here.png"];
return annotationView;
}
return nil;
}
Możesz również dostosować centerOffset
właściwość, aby pin ustawiał się dokładnie tak, jak chcesz.
Jeśli chodzi o personalizację wywołania, najprostszym podejściem jest określenie leftCalloutAccessoryView
, rightCalloutAccessoryView
i / lub detailCalloutAccessoryView
. Daje to zaskakujący stopień kontroli, dodając wszelkiego rodzaju obrazy, etykiety itp.
Jeśli chcesz radykalnie przeprojektować wywołanie, możesz ustawić viewForAnnotation
canShowCallout
na NO
, a następnie odpowiedzieć na setSelected
w niestandardowym widoku adnotacji, aby wyświetlić własne wywołanie. Podczas gdy w Swift, zobacz dostosowywanie Mkannotation Callout View? dla kilku opcji dostosowywania wezwań.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:25:29