在我们的应用程序中,由于 MGLAnnotationViews 的灵活性,我们大量使用它。
我们可以使用 MGLAnnotationView 为地图上的注释设置动画。
例如,注释上的脉动效应对我们的应用程序至关重要。
在之前的版本 6 中,我们通过以下方式实现了脉动效果:
class CustomAnnotationView: MGLAnnotationView {
let pointFeature: MGLPointFeature
let reuseId: String
let customPulse = CustomPulseLayer() // CAReplicatorLayer
init(pointFeature: MGLPointFeature, showPulse: Bool) {
self.pointFeature = pointFeature
self.reuseId = self.identifier(forFeature: pointFeature)
super.init(annotation: pointFeature, reuseIdentifier: self.reuseId)
self.frame = CGRect(x: 0, y: 0, width: 24, height: 24)
self.layer.cornerRadius = bounds.width / 2
self.backgroundColor = .systemBlue
self.addSubview(pointImageView)
if showPulse {
layer.addSublayer(customPulse)
customPulse.start()
}
}
private lazy var pointImageView: UIImageView = {
let imageView = UIImageView(frame: self.frame)
let image = self.imageBasedOnIdentifier(self.reuseId)
imageView.image = image
return imageView
}()
}
有人知道如何在 Mapbox 版本 10 中完成同样的事情吗?