2012-04-29 7 views
1

私はCoreLocationとMapKitを初めて使用しています。私はこの奇妙な問題があります。基本的には、UIViewにMKMapViewが表示されています。私はこのように私のMKMapViewを設定する場合:MapViewデリゲートを自己に設定すると、showUserLocationが変更されます

self.mapView.showsUserLocation = YES; 
//self.mapView.delegate = self; 

私はこれを取得する(1):

enter image description here

しかし、私は二行のコメントを解除するとき、私はこれを取得する(2)私は奇妙な見つけました。私は自分にMKMapViewのデリゲートを設定し、まだ(1)

おかげ

+0

2行の順序を切り替えるとどうなりますか? –

+0

何も、私はまだ得る(2) –

答えて

3

あなたに(viewForAnnotation法)の注釈を上書きする得るために何ができる方法

enter image description here

コントローラ?デリゲートを自己に設定すると、アノテーションは上書きされているように見えます。

クラスのアノテーションを変更する場合は、次の行を追加します。これにより、現在の場所の注釈を変更できなくなります。

- (MKAnnotationView *)mapView:(MKMapView *)map viewForAnnotation:(id <MKAnnotation>)annotation 
{ 
    static NSString *AnnotationViewID = @"annotationViewID"; 

    // Check if its the annotation for displaying the current position 
    if ([annotation isKindOfClass:[MKUserLocation class]]) 
    { 
     return nil; 
    } 

    // Your annotation code 

} 
+0

ありがとう、それは動作します。しかし、「私のコントローラーの注釈を上書きする」とはどういう意味ですか? –

+0

私はかつて同様の問題を抱えていました。注釈アイコンをどこで変更していたのですか?上記のコードサンプルに示すように、注釈メソッドを上書きしていました。しかし、私はすべての注釈(現在の位置アイコンを含む)を上書きしていました。上記のように実装されたメソッドの前に、自分自身が委譲されているControllerクラス内にありましたか? - (MKAnnotationView *)mapView:(MKMapView *)map viewForAnnotation:(id )注釈? – Prine

関連する問題