我完全了解Maps的工作原理,但我陷入了一个非常奇怪的问题。
一旦打开我的Map Controller,我的默认蓝色就会显示出来(MKUserLocation),但当我加载自定义引脚(IVMyLocation,Annotation类)时,默认引脚就会消失。
我正在正确管理删除自定义引脚,这样默认引脚就不会像一样消失
for (id<MKAnnotation> annotation in _mapView.annotations) {
if([annotation isKindOfClass:[IVMyLocation class]])
[_mapView removeAnnotation:annotation];
}
但我的默认密码仍在消失。它只是第一次出现。
注意:它在Xcode4模拟器中工作良好,仅在设备中消失
您应该为mapView:viewForAnnotation:
中的MKUserLocation
返回nil
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id < MKAnnotation >)annotation
if ([annotation isKindOfClass:[MKUserLocation class]])
return nil;
// etc
这允许显示默认的蓝点。
减少对象数量。帮助了我。