ios - MKAnnotationView 没有显示在 map 上

标签 ios mapkit mkannotationview

我正在尝试使用 MKPointAnnotation 来注释我的 map ,如下所示:

- (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];
}

Pin 无法显示在 map 上。 RootViewControllermapView 的委托(delegate),因此调用了 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>

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

最佳答案

viewForAnnotation 中,创建一个 MKPinAnnotationView 而不是 MKAnnotationView(您必须为其设置 image ).

虽然对于默认的引脚注释 View ,您根本不需要实现委托(delegate)方法。

关于ios - MKAnnotationView 没有显示在 map 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8257900/

相关文章:

ios - 通过 Storyboard Segue 在类之间传递时, bool 变量始终为 false

jquery - 从 iOS 上的 PhoneGap 到服务器上的 PHP 的 "Post"和 "GET"请求不起作用

ios - 为什么MKMapView的mapView是:viewForOverlay: not called when userlocation is enabled?

ios - MKAnnotationView subview

swift - 自定义 MKAnnotationView 想要再次被点击

ios - 如何正确地将对象从一个 Realm 对象复制到另一个对象

objective-c - 在 Cocoa Touch 中以编程方式将 View 位置设置为右上角

ios - 在 iOS MapKit 中,如何在 map 旋转时为注释添加动画效果?

ios - 注解 dealloc 方法从不在 ARC 中调用,底层的 viewcontroller dealloc 被调用

iphone - 标注气泡MKMapView移动问题