質問

これは私が注釈ビューを作成するときにピンをドロップし、私の-mapView:viewForAnnotation方法です。私はmapView.showsUserLocation = YES;-viewDidLoadを設定する場合でも、私はピンが無限ループに落ち得る。 - 通常の青い点(予想シミュレータでは)ありません。

- (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>) annotation{
     MKAnnotationView *anno = nil;
     //create a pin annotation view
MKPinAnnotationView  *pin=[[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"pin"]autorelease];

    [pin setPinColor:MKPinAnnotationColorRed];
    pin.animatesDrop=YES;
    pin.canShowCallout = YES;
    pin.calloutOffset = CGPointMake(-5, 5);
    anno = pin;
    return anno;
}

私はそれがピンをドロップし、同様に青のドットを表示する方法を得ることができますか?

おかげ

役に立ちましたか?

解決

これはそれを行うための正しい方法であればよくわからないが、修正するのはとても簡単で...

if (annotation == mapView.userLocation){
    return nil; //default to blue dot
}

他のヒント

他の回答と同様に、ここに近いものがあります:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation 
{
    NSString *annotationType = [NSString stringWithCString:object_getClassName(annotation)];
    if ([annotationType compare:@"NSKVONotifying_MKUserLocation"] == 0)
        return nil;
    ...
}

もちろん、ご自身の責任でこのようなものを使用します。 Appleはその名前を変更することを決めた場合、それは明日に動作を停止する可能性があります。

多くの場合、あなたは注釈に関連した情報を検索するために、注釈の独自のクラスを使用します。その場合には、唯一の

のようなものを使用し、独自の注釈を処理します
if ([annotation isKindOfClass:[MapLocation class]]) {}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top