Будем благодарны за любые предложения о том, что не так со следующим.
Я добавляю пользовательское изображение в аннотацию, используя следующий код.
- (MKAnnotationView *)mapView:(MKMapView *)mapView
viewForAnnotation:(id <MKAnnotation>)annotation
{
if ([annotation isMemberOfClass:[MKUserLocation class]])
{
return nil;
}
if ([annotation isMemberOfClass:[SpectatorPin class]])
{
SpectatorPin *sp = (SpectatorPin *)annotation;
MKAnnotationView *view = [self.mapView dequeueReusableAnnotationViewWithIdentifier:@"specPin"];
if (view == nil) {
view = [[[MKPinAnnotationView alloc] initWithAnnotation:sp reuseIdentifier:@"specPin"] autorelease];
}
view.image = [UIImage imageNamed:@"mylocation20x20.png"];
view.canShowCallout = YES;
view.annotation=annotation;
return view;
}
//Should not get here
return nil;
}
Первоначально изображение отображается правильно.
У меня есть сегментный элемент управления, который меняет тип карты (стандартная, спутниковая, гибридная).Стандарт по умолчанию.Как только я выбираю спутник, изображение сразу меняется на булавку.Метод mapView: viewforAnnotation больше не вызывается.
С уважением,
Джим