Jak utworzyć niestandardowy MKAnnotationView i Niestandardowy tytuł adnotacji i podtytuł

Tutaj wpisz opis obrazka

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.

Author: Julian Król, 2013-04-27

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ń.

 37
Author: Rob,
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