1

私のアプリはユーザーの許可を得て、地図をその場所に移動します。デフォルトでは、その位置にMapKitパルスを生成する青いアイコンを追加します。
私は周りを検索しましたが、周りに1000mの円を追加する方法を見つけましたuserLocation. 私はそれをしたくありません。userLocationデフォルトをカスタマイズしようとしていると言えますannotation。発生する青いパルスを増やしたいradius。そして、この青いパルスがカスタムannotationに当たると、メソッドがトリガーされるはずです。では、それを達成する方法は?

4

1 に答える 1

1

残念ながら、標準の注釈の動作を単純に変更することはできません。注釈ビューの表示を自分で引き継ぐ必要があります。

ユーザーの場所は、タイプ のマップ アノテーションですMKUserLocationMKMapViewDelegateメソッドを実装し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 に答える