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];

マーカーをタッチすると、「これはタイトルです:

ここに画像の説明を入力

This is the title, This is the subtitle with small font. 見なければならないと思います。

前もって感謝します

4

2 に答える 2

3

[super init]カスタムinitメソッドから呼び出す必要があります

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

それに加えて、プロパティを提供することでsubtitle、サブタイトルを表示するのに十分なはずです(ご想像のとおり、フォントが小さい2行目のテキスト)。viewControllerのNSLogで確認して、プロパティが設定されていることを確認します。

また、Apple HIGに違反しているため、2行のtabBarを削除することを検討してください。多くのメニューボイスを表示する必要がある場合は、スライドアウトメニューなどの別のデザインパターンを使用することを検討してください。このライブラリを使用できます

于 2012-08-21T08:55:50.617 に答える
2

私はそれを見つけました、私はandramazzが言ったことを逃しました、スーパーを呼び出して、このメソッドを追加してください:

- (NSString *)subtitle {
    return subTitle;
 }

なぜこの方法が必要だったのに、タイトルにはなかったのか誰か教えてもらえますか?

ありがとう!

于 2012-08-21T09:07:23.647 に答える