1

我正在尝试将 mkannotation 添加到我的地图中,但未显示字幕(或者我不知道如何查看它,我有一个 android 设备,很难理解 iphone 是如何工作的)

这是我的 MapPoint.h:

@interface MapPoint : NSObject<MKAnnotation> {

NSString *title;
NSString *subTitle;
CLLocationCoordinate2D coordinate;

}

@property (nonatomic,readonly) CLLocationCoordinate2D coordinate;
@property (nonatomic,copy) NSString *title;
@property (nonatomic,copy) NSString *subTitle;

-(id) initWithCoordinate:(CLLocationCoordinate2D) c title:(NSString *) t subTitle:(NSString *) st;

@end

我的 MapPoint.m:

@implementation MapPoint

@synthesize title,coordinate,subTitle;

-(id) initWithCoordinate:(CLLocationCoordinate2D)c title:(NSString*)t subTitle:(NSString *) st
{
coordinate = c;
[self setTitle:t];
[self setSubTitle:st];
return self;

}


@end

在 Map.m 中,我有:

MapPoint *mp = [[MapPoint alloc] initWithCoordinate:pointCoord title:@"This is the title" subTitle:@"This is the subtitle"];
[mv addAnnotation:mp];

当我触摸我的标记时,我只看到“这是标题:

在此处输入图像描述

我想我必须看到这是标题,这是字体较小的副标题。

先感谢您

4

2 回答 2

3

您需要[super init]从您的自定义 init 方法调用

self = [super init];
if (self) {
  // your code
}
return self;

除此之外,提供一个subtitle属性应该足以显示字幕(如您所料,第二行字体较小的文本)。确保设置了属性,并在 viewController 上检查 NSLog。

另外,考虑去掉两行 tabBar,因为它违反了 Apple HIG。如果您需要显示许多菜单声音,请考虑使用其他设计模式,例如滑出菜单。你可以使用这个库

于 2012-08-21T08:55:50.617 回答
2

我找到了,我错过了andramazz所说的,调用super并添加这个方法:

- (NSString *)subtitle {
    return subTitle;
 }

有人能告诉我为什么这个方法是必要的,但它不在标题中吗?

谢谢!

于 2012-08-21T09:07:23.647 回答