Можно ли использовать пользовательский вид для 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.
}