Можно ли использовать пользовательский вид для SKCalloutView?

Можно ли сделать пользовательский UIView с такими элементами, как Label и Button, и использовать его в качестве CalloutView?

То, что я прочитал до сих пор в документации, не означает, что это возможно.

Изменение левой и правой кнопки возможно, вместе с добавлением пользовательского UIImageView для стрелки, но не может понять, возможна ли на самом деле настройка всего вида.

1 ответ

Решение

Да - вам просто нужно переопределить обратный вызов calloutViewForAnnotation. В демонстрационном проекте есть пример (см. Внутри AnnotationsViewController.m), где вы можете создать пользовательский UIView и вернуть его

- (UIView*)mapView:(SKMapView *)mapView calloutViewForAnnotation:(SKAnnotation *)annotation
{
    //Custom callouts.
    if (annotation.identifier == self.annotation1.identifier)
    {
        UIView *view = [[UIView alloc]initWithFrame:CGRectMake(0.0f, 0.0f, 200.0f, 50.0f)];
        view.backgroundColor = [UIColor purpleColor];
        view.alpha = 0.5f;
        return view;
    }

    return nil;// Default callout view will be used.
}
Другие вопросы по тегам