可以使用NSMutableAttributedString的iOS MKAnnotation字幕

时间:2014-05-20 16:10:49

标签: ios mkannotation nsattributedstring subtitle callout

我试图让MKAnnotation副标题有彩色文字,但我无法通过NSMutableAttributedString实现这一点。

有没有人知道如何实现这一目标?

我目前的代码:

customAnn.h

interface MapAnnotation : NSObject <MKAnnotation>

@property (nonatomic, copy) NSString *title;
@property (nonatomic, copy) NSString *subtitle;
@end

customAnn.m

@implementation MapAnnotation

- (NSString *)title
{
    return @"Some Title";
}

- (NSString *)subtitle
{
    NSMutableAttributedString *subPart = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@ ", [[[data valueForKey:@"16"] sortedArrayUsingSelector: @selector(localizedStandardCompare:)] componentsJoinedByString:@" "]]];
    [subPart addAttribute:NSForegroundColorAttributeName value:[UIColor colorWithRed:20/225.0 green:30/255.0 blue:15/255.0 alpha:1] range:NSMakeRange(0, subPart.length)];
    return subPart;
}
@end

目前代码无效,因为- (NSString *)subtitle想要NSString但得到NSMutableAttributedString - 它会崩溃,但如果更改为- (NSMutableAttributedString *)subtitle我甚至无法获得它编译。

我没有其他想法如何实现这一点。

感谢。

1 个答案:

答案 0 :(得分:0)

我认为你不能用股票MKAnnotation做到这一点。我会创建自己的自定义注释视图,这样您就可以根据需要自定义视图。

这是一个很好的教程:

http://blog.asynchrony.com/2010/09/building-custom-map-annotation-callouts-part-1/