У меня возникла странная проблема с MKMapView
. Я использовал MKOverlayRenderer
. Теперь проблема заключается в том, что я правильно масштабирую изображение. Но в случае увеличения масштаба часть части изображения отключается. Он выглядит как часть MapView
идет над наложением. Ниже приведен мой код визуализации наложения.Наложение MapView отключается после увеличения
class MapOverlayRenderer: MKOverlayRenderer {
var overlayImage: UIImage
var plan: Plan
init(overlay: MKOverlay, overlayImage: UIImage, plan: Plan) {
self.overlayImage = overlayImage
self.plan = plan
super.init(overlay: overlay)
}
override func draw(_ mapRect: MKMapRect, zoomScale: MKZoomScale, in ctx: CGContext) {
let theMapRect = overlay.boundingMapRect
let theRect = rect(for: theMapRect)
// Rotate around top left corner
ctx.rotate(by: CGFloat(degreesToRadians(plan.bearing)));
// Draw the image
UIGraphicsPushContext(ctx)
overlayImage.draw(in: theRect, blendMode: CGBlendMode.normal, alpha: 1.0)
UIGraphicsPopContext();
}
func degreesToRadians(_ x:Double) -> Double {
return (M_PI * x/180.0)
}
}
Хотя я не знаю истинную причину, но когда я комментирую ctx.rotate(by:)
функция эта проблема была исправлена. Но это не мое решение, потому что изображение должно быть на месте.
Вы пытаетесь поместить код масштабирования в очередь отправки? –
не работает !!!!! –
Я все еще сражаюсь ... может кто-нибудь мне помочь? –