(使用 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/地图视图委托的最新坐标。然而,由于 MKCircle 的坐标属性是只读的,我必须删除覆盖,然后在每次用户移动时添加一个新的。发生时会引起明显的闪烁。
当地图视图被缩放时,有什么方法可以无缝地使注释缩放?或者有没有一种好方法可以使覆盖层随着用户位置的变化而无缝移动?
我将非常感谢您的帮助:)