15

を作成できますかMKAnnotation、それとも読み取り専用ですか?MKAnnotation座標はありますが、を使用して手動でwithを作成するのは簡単ではありませんsetCoordinate

アイデア?

4

3 に答える 3

40

MKAnnotationはプロトコルです。したがって、このプロトコルを実装する独自の注釈オブジェクトを作成する必要があります。したがって、MyAnnotationヘッダーは次のようになります。

@interface MyAnnotation : NSObject<MKAnnotation> {
    CLLocationCoordinate2D coordinate;
}

@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;

// add an init method so you can set the coordinate property on startup
- (id) initWithCoordinate:(CLLocationCoordinate2D)coord;

実装は(MyAnnotation.m)のようになります。

- (id) initWithCoordinate:(CLLocationCoordinate2D)coord
{
    coordinate = coord;
    return self;
}

したがって、注釈をマップに追加するには、次のようにします。

MyAnnotation * annotation = [[[MyAnnotation alloc] initWithCoordinate:coordinate] autorelease];
[self.mapView addAnnotation:annotation];

注釈コールアウトにタイトルとサブタイトルを付けたくない場合は、タイトルとサブタイトルのプロパティを追加する必要があります。

于 2010-05-21T00:21:54.503 に答える
32

iPhone OS 4には、MKAnnotationプロトコルの具体的な実装である新しいクラスMKPointAnnotationがあります。

于 2010-06-24T11:10:44.780 に答える
9

アップルのMapCalloutsプロジェクトを確認してください。必要なものはすべてそのファイルにあります:http: //developer.apple.com/iphone/library/samplecode/MapCallouts/Introduction/Intro.html

于 2010-06-03T01:14:49.450 に答える