我正在尝试将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];
当我触摸我的标记时,我只看到“这是标题:
我想我必须看到这是标题,这是字体较小的副标题。
提前谢谢
答案 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;
}
有人可以告诉我为什么这种方法是必要的,但它不在标题中?
谢谢!