I am using the iOS 7 MapKit APIs to produce 3D camera movements on a map that displays an MKDirectionsRequest-produced path. The path is rendered by MKOverlayRenderer like s
MKPolyline is not drawing when zoom is changing and when the region is changing. Simple fix below.
public class PolylineRenderer : MKPolylineRenderer {
private var displayLink: CADisplayLink!
private var ticks = 0
override public init(overlay: MKOverlay) {
super.init(overlay: overlay)
displayLink = CADisplayLink(target: self, selector:#selector(PolylineRenderer._update))
displayLink.add(to: .main, forMode: .commonModes)
}
func _update() {
if ticks < 3 {
ticks+=1
} else {
ticks = 0
}
if ticks == 0 {
self.setNeedsDisplay()
}
}
deinit {
if displayLink != nil {
displayLink.invalidate()
}
}
}
Its pretty simple once you realize its just not painting fast enough. Skipping 3 ticks does not kill the CPU and bye to the jaggies.