2011-11-24 90 views
5

上我想我的标注地图MKPointAnnotation,像这样:MKAnnotationView没有显示出来的地图

- (void)viewDidLoad 
{ 
    NSLog(@"RootViewController viewDidLoad"); 

    [super viewDidLoad]; 

    CLLocationCoordinate2D coord = 
    CLLocationCoordinate2DMake(54.903683,23.895435); 

    MKPointAnnotation *toyAnnotation = [[MKPointAnnotation alloc] init]; 

    toyAnnotation.coordinate = coord; 
    toyAnnotation.title = @"Title"; 
    toyAnnotation.subtitle = @"Subtitle"; 

    [mapView addAnnotation:toyAnnotation]; 

    [toyAnnotation release]; 

} 

- (MKAnnotationView *)mapView:(MKMapView *)m 
      viewForAnnotation:(id <MKAnnotation>)annotation 
{ 
    NSLog(@"RootViewController mapView: viewForAnnotation:"); 
    NSLog(@"%@",annotation); 

    MKAnnotationView *pin = [[MKAnnotationView alloc] 
          initWithAnnotation:annotation 
          reuseIdentifier:nil]; 

    pin.enabled = YES; 
    pin.canShowCallout = YES; 

    return [pin autorelease]; 
} 

针没有出现在地图上。 RootViewControllermapView委托,因此mapView:viewForAnnotation:方法被调用:

2011-11-24 15:04:03.808 App[2532:707] RootViewController mapView: viewForAnnotation: 
2011-11-24 15:04:03.810 App[2532:707] <MKPointAnnotation: 0x1885c0> 

什么我做错了,如何解决这个问题?

回答

18

viewForAnnotation中,创建MKPinAnnotationView而不是MKAnnotationView(为此,您必须设置image)。

尽管对于默认引脚注释视图,您根本不需要实施委托方法。