gpt4 book ai didi

ios - 在 Swift map 上的 MKOverlay 中添加模糊 View

转载 作者:行者123 更新时间:2023-11-28 07:54:24 26 4
gpt4 key购买 nike

我正在尝试为 MKMapView 添加模糊效果。也就是说,我想在 map 上模糊一些不一定是矩形的区域。

我已经尝试设置一个会绘制模糊的 MKOverlayRenderer,但是我一直在设置它时遇到了巨大的困难,以至于模糊会影响下面的内容,而不是只显示灰色区域或什么都不显示。

这是我的尝试,我知道它不会起作用,但我就是不知道如何修复它。

class BlurOverlayRenderer: MKOverlayRenderer {
var blurView: UIVisualEffectView?

override init(overlay: MKOverlay) {
super.init(overlay: overlay)
blurView = UIVisualEffectView(effect: UIBlurEffect(style: .regular))
}

override func draw(_ mapRect: MKMapRect, zoomScale: MKZoomScale, in context: CGContext) {
context.draw(blurView?.layer as! CGLayer, at: CGPoint.zero)
}
}

如何修复此渲染器以在 map 上模糊其下方的区域?

最佳答案

UIVisualEffectView 将不起作用,因为它应该位于 UIView 层次结构中,以便 UIKit 可以找到底层 View 并创建模糊图片。但是 MKMapView 使用自定义的基于层的渲染树。这就是你得到灰色区域的原因。

您可以尝试做的是在相应的 mapRect 中创建 context 的图片,然后对其进行模糊处理并在同一位置绘制。

关于ios - 在 Swift map 上的 MKOverlay 中添加模糊 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48695613/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com