0
UICRouteAnnotation *startAnnotation = [[UICRouteAnnotation alloc] initWithCoordinate [[routePoints objectAtIndex:0] coordinate]
title:@"Origin"
subtitle:@"Subtitle Here"
annotationType:UICRouteAnnotationTypeStart];

この注釈にサブタイトルを追加しようとしていますが、UICRouteAnnotation の経験があまりなく、それに関する多くのドキュメントを見つけることができませんでした。例外を介して「subtitle:」を追加します。

私は何が欠けていますか?このようにすると字幕が機能しないのはなぜですか?

4

1 に答える 1

1

私が気付いていなかったのは、字幕を受け入れるように UICRouteAnnotation を変更する必要があるということです。UICRouteAnnotation の更新された h および m ファイルを次に示します。以下の変更を行うと問題が解決したため、質問に投稿したコードは意図したとおりに機能します。

私を正しい方向に向けてくれてありがとうアンナ。

.h ファイル

#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>

typedef enum UICRouteAnnotationType {
    UICRouteAnnotationTypeStart,
    UICRouteAnnotationTypeEnd,
    UICRouteAnnotationTypeWayPoint,
} UICRouteAnnotationType;

@interface UICRouteAnnotation : NSObject<MKAnnotation> {
    CLLocationCoordinate2D coordinate;
    NSString *title;
    NSString *subtitle;
    UICRouteAnnotationType annotationType;
}

@property (nonatomic) CLLocationCoordinate2D coordinate;
@property (nonatomic, readonly, copy) NSString *title;
@property (nonatomic, readonly, copy) NSString *subtitle;
@property (nonatomic) UICRouteAnnotationType annotationType;

- (id)initWithCoordinate:(CLLocationCoordinate2D)coord 
                   title:(NSString *)aTitle 
                   subtitle:(NSString *)aSubTitle 
          annotationType:(UICRouteAnnotationType)type;

@end

.m ファイル

#import "UICRouteAnnotation.h"

@implementation UICRouteAnnotation

@synthesize coordinate;
@synthesize title;
@synthesize subtitle;
@synthesize annotationType;

- (id)initWithCoordinate:(CLLocationCoordinate2D)coord 
                   title:(NSString *)aTitle 
                subtitle:(NSString *)aSubTitle
          annotationType:(UICRouteAnnotationType)type {
    self = [super init];
    if (self != nil) {
        coordinate = coord;
        title = [aTitle retain];
        subtitle = [aSubTitle retain];
        annotationType = type;
    }
    return self;
}

- (void)dealloc {
    [title release];
    [subtitle release];
    [super dealloc];
}

@end
于 2012-08-30T17:29:46.657 に答える