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 :)函数时,这个问题已得到修复.但这不是我的解决方案,因为图像必须处于适当位置.
overrIDe func draw(_ mapRect: MKMapRect,in ctx: CGContext) {dispatchQueue.main.async { 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,Alpha: 1.0) UIGraphicsPopContext();} }总结
以上是内存溢出为你收集整理的swift3 – 放大后MapView叠加层正在切断全部内容,希望文章能够帮你解决swift3 – 放大后MapView叠加层正在切断所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)