2016-07-18 4 views
1

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

答えて

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; 
} 

は別の注釈を交差する「パルス」いくつかのアニメーションを実行するためとして、あなたはあなた脈打つビューに他の注釈の場所を渡すとしたときの座標を確認する必要があります

アニメーションを実行します。

+0

これは個人的に行ったことがありますか?ハックのように聞こえる。 Appleは毎回これをやります... – denis631

+0

なぜそれは "ハック"ですか?標準アノテーションの外観を変更する機能はありません。 Appleの標準的な注釈ビューが必要な場合や、別のものが必要な場合があります。あなたが何か違うものを望むなら、自分の意見を提供する必要があります。 – Paulw11

+0

私が望むのは、ユーザー位置の注釈サークルの半径を増やすだけですが、私はそれを行うことができないので、自分のオーバーレイを作成しなければならないため、ハックが発生します。 – denis631

関連する問題