(使用iOS 5和Xcode 4.2)
我有一个MKMapView,想在用户位置周围绘制一个1000m半径的圆。
表面上看来,实现mapView:viewForAnnotation:地图视图委托方法,并为用户位置添加自定义MKAnnotationView将是一个完美的解决方案。它将会像下面这样:
- (MKAnnotationView *)mapView:(MKMapView *)mapView
viewForAnnotation:(id <MKAnnotation>)annotation
{
// If it's the user location, return my custom MKAnnotationView.
if ([annotation isKindOfClass:[MKUserLocation class]]) {
return myCustomAnnotationView;
} else {
return nil;
}
}
然而,当您放大或缩小地图时,地图上的注释并不会随之缩放。
因此,我尝试添加一个覆盖层(因为覆盖层可以随着地图一起缩放),使用MKCircle类并将其坐标设置为locationManger/map view delegate中最新的坐标。但是,由于MKCircle的coordinate property是只读的,每次用户移动时,我都必须删除覆盖层,然后添加一个新的覆盖层,这会导致明显的闪烁。
有没有办法使注释随着地图视图的缩放无缝缩放?还是有没有一种好的方法使覆盖层随着用户位置的变化无缝移动?
非常感谢您的帮助 :)