showsUserLocationリターンピンの代わりに、iPhoneシミュレータで青い点
-
13-09-2019 - |
質問
これは私が注釈ビューを作成するときにピンをドロップし、私の-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]]) {}
所属していません StackOverflow