mkannotation副标题

时间:2012-08-21 07:42:18

标签: objective-c mkannotation mkannotationview

我正在尝试将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];

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

enter image description here

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

提前谢谢

2 个答案:

答案 0 :(得分:3)

您需要从自定义初始化方法

中调用[super init]
self = [super init];
if (self) {
  // your code
}
return self;
除此之外,提供subtitle属性应该足以显示副标题(正如您猜测的那样,第二行文字的字体较小)。确保设置了proerty,在viewController上使用NSLog进行检查。

另外,考虑摆脱两行tabBar,因为它违反了Apple HIG。 如果需要显示许多菜单音色,请考虑使用其他设计模式,例如“滑出”菜单。您可以使用this library

答案 1 :(得分:2)

我找到了,我错过了andramazz所说的,打电话给超级并添加这个方法:

- (NSString *)subtitle {
    return subTitle;
 }

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

谢谢!