26

MKPinAnnotationViewプログラムでコールアウトを開きたい。たとえば、マップ上に 10 個のピンをドロップし、最も近いピンを開きたいとします。どうすればこれを行うことができますか?

Apple は に 'selected' パラメータを指定しましたMKAnnotationView'sが、直接設定することはお勧めしません (これは機能しません。試してみました)。

残りMKAnnotationViewは setHighlighted (同じストーリー) のみで、ShowCalloutメソッドを使用できます。

これが可能な場合のヒントはありますか?

4

2 に答える 2

81

mapViewController でアクション メソッドを作成します。

- (void)openAnnotation:(id)annotation 
{
    //mv is the mapView
    [mv selectAnnotation:annotation animated:YES];

}

次に、現在の位置に基づいて最も近い注釈を決定し、配列で使用可能な注釈をたどることができます。

[mv annotations];

最も近い注釈が計算されたら、次を呼び出します。

[self openAnnotation:closestAnnotation];

mapView は自動的にスクロールして、注釈を表示領域の中央に配置します。

于 2010-02-26T04:45:18.993 に答える