Ну, это происходит от UIView
, так что теоретически это кажется возможным, но он может не работать должным образом, если его суперпредставление не является MKMapView. Я попробовал бы и посмотрел, что происходит (и дал бы знать остальным).
В качестве альтернативы было бы не сложно создать собственный подкласс UIView, который ведет себя очень похоже на MKPinAnnotationView. (Я бы, вероятно, подкласс UIControl, так как вы, вероятно, хотите иметь возможность отвечать на пользовательские события.)
РЕДАКТИРОВАТЬ: Я только что попробовал очень простую реализацию, и, кажется, работает нормально. Вот код, который я использовал в своем контроллере представления. MyAnnotation - очень простой класс, который реализует протокол MKAnnotation.
- (void)viewDidLoad {
[super viewDidLoad];
MyAnnotation *annotation = [[[MyAnnotation alloc] init] autorelease];
MKPinAnnotationView *pinView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:nil] autorelease];
pinView.center = self.view.center;
[self.view addSubview:pinView];
}
Еще одно обновление: Хорошо, вывод отображается, но он не перетаскивается, даже если draggable = YES
, и выноска не появляется, даже если canShowCallout = YES
. Это имеет смысл, учитывая, что эти поведения фактически контролируются представлением карты, а не фактическим представлением булавки.
Так что, если вы просто хотите отобразить булавку с тенью на вашем виде, она отлично работает. Если вам нужны некоторые функции, которые вы получаете при отображении булавки в виде карты, вы должны сами добавить ее в свой вид или в контроллер вида.