MKPinAnnotationView的弹出窗口未显示

3

这是一个相当奇怪的问题,但我认为可能是因为我还没有完全理解MapKit的细节。在页面上有一堆注释,当我选择其中一个时,我希望出现一个气泡弹出框。我使用了[pinView setCanShowCallout:YES];,并且知道当我点击标记时,它们被选中,因为相应的委托方法mapView:didSelectAnnotationView被触发了。然而,为什么没有弹出气泡呢?有任何帮助都将不胜感激。

2个回答

6

要使标注弹出窗口生效,MKAnnotation对象必须响应@property title。如果您有一个标题并且canShowCallout == YES,则应该可以正常工作。


3
你是否有一个遵循 MKAnnotation 协议的对象来支持你的 MKPinAnnotationViews

是的,我的 MapPin 类在其头文件顶部有 @interface MapPin : NSObject <MKAnnotation> - Mason
你在这个对象中实现了“- (NSString *)title”方法来返回应该出现在标注视图中的文本吗? - Mark Adams
#import <Foundation/Foundation.h> #import "MapKit/MapKit.h" #import "Place.h"@interface MapPin : NSObject <MKAnnotation> { NSString *title; NSString *subtitle; CLLocationCoordinate2D coordinate; Place place; } @property (readonly,nonatomic,copy)NSString title;@property (readonly,nonatomic,copy)NSString* subtitle;-(id)initWithName:(NSString *)name andLocation:(CLLocationCoordinate2D)location; -(id)initWithPlace:(Place *)aPlace; -(Place *)place; @end这是我的接口。 - Mason
1
没事了,我解决了。我想我在试图弄清楚为什么它不起作用时,不小心删除了我的setCanShowCallout方法调用。谢谢! - Mason

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接