目前,我正在使用此代码绘制圆圈。
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
if let overlay = overlay as? MKCircle {
let circleRenderer = MKCircleRenderer(overlay: overlay)
circleRenderer.fillColor = UIColor.black.withAlphaComponent(0.19)
circleRenderer.lineWidth = 1
return circleRenderer
}
return MKOverlayRenderer(overlay: overlay)
}
func mapView(_ mapView: MKMapView, didUpdate userLocation: MKUserLocation) {
let circle = MKCircle(center: userLocation.coordinate, radius: self.regionRadius)
print("\(userLocation.coordinate)")
if (CLLocationManager.authorizationStatus() == .denied || CLLocationManager.authorizationStatus() == .notDetermined) {
mapView.removeOverlays(mapView.overlays)
} else {
mapView.removeOverlays(mapView.overlays)
mapView.addOverlay(circle)
}
}
当前输出:
它工作正常,但圆圈闪烁并闪烁。我需要圆环的平稳移动。我知道这是iOS 13问题。
有两个选项:
[我发现,通常,如果在删除旧的叠加层之前添加新的叠加层,闪烁效果会减弱。
您可能会考虑将圆设为自定义注释视图,而不是叠加层。这样,您只需调整coordinate
即可,无需添加/删除。