Подтвердить что ты не робот

Как создать пользовательский MKAnnotationView и пользовательский заголовок аннотации и субтитры

enter image description here

Мне нужно создать над представлением аннотации MKMapView. Я могу создать пользовательский вид аннотации, но при нажатии аннотации представление должно быть открыто с помощью этого большого текста, я не могу его создать. Пожалуйста, предоставьте мне некоторые ссылки или способ выполнения этой задачи.

4b9b3361

Ответ 1

Чтобы создать пользовательский аннотационный вид (замена стандартного вывода), вы можете просто установить свойство image свойства MKAnnotationView в viewForAnnotation метод:

- (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;
}

Вам также может потребоваться отрегулировать свойство centerOffset, чтобы вывести вывод так, как вы хотите.

Что касается настройки выноски, самым простым подходом является указание leftCalloutAccessoryView, rightCalloutAccessoryView и/или detailCalloutAccessoryView. Это дает вам удивительную степень контроля, добавляя все виды изображений, ярлыков и т.д.

Если вы хотите сделать радикальную редизайн выноски, вы можете viewForAnnotation установить canShowCallout в NO, а затем ответить на setSelected в пользовательском представлении аннотации, чтобы показать свою собственную выноску. В Swift см. Настроить MKnnotation Callout View? для нескольких параметров для настройки выносок.