私のアプリはユーザーの許可を得て、地図をその場所に移動します。デフォルトでは、その位置にMapKit
パルスを生成する青いアイコンを追加します。
私は周りを検索しましたが、周りに1000mの円を追加する方法を見つけましたuserLocation
. 私はそれをしたくありません。userLocation
デフォルトをカスタマイズしようとしていると言えますannotation
。発生する青いパルスを増やしたいradius
。そして、この青いパルスがカスタムannotation
に当たると、メソッドがトリガーされるはずです。では、それを達成する方法は?
1 に答える
1
残念ながら、標準の注釈の動作を単純に変更することはできません。注釈ビューの表示を自分で引き継ぐ必要があります。
ユーザーの場所は、タイプ のマップ アノテーションですMKUserLocation
。MKMapViewDelegate
メソッドを実装しviewForAnnotation
、マップがユーザーの位置を表示している場合、デリゲート メソッドは のインスタンスで呼び出されMKUserLocation
ます。ユーザーの責任は、 を返すことnil
です。この場合、標準の注釈ビューが表示されます。または、 のインスタンスを返しますMKAnnotationView
。代わりに表示されます。
次のようなコードを作成できます。
- (MKAnnotationView *)mapView:(MKMapView *)mapView
viewForAnnotation:(id<MKAnnotation>)annotation {
if ([annotation isKindOfClass:[MKUserLocation class]]) {
return [[MyPulsingViewAnnotation alloc] initWithUserLocation:annotation];
}
return nil;
}
「パルス」が別の注釈と交差するときにアニメーションを実行するには、他の注釈の位置をパルス ビューに渡し、アニメーションを実行するときに座標を確認する必要があります。
于 2016-07-18T07:58:43.680 に答える