J'essaie d'implémenter un MKCircle dont le rayon augmente ou diminue en fonction de la modification d'un curseur. Le problème que je rencontre est que lorsque le cercle est redessiné, il n'est pas du tout lisse. J'ai lu quelques autres articles qui semblent indiquer qu'il faut créer une sous-classe de MKCircle et y faire quelque chose, mais à chaque fois que je regarde des exemples de code, j'ai du mal à suivre car ils ne sont généralement pas en Swift 3. Quelqu'un pourrait-il me montrer comment faire ? Voici mon code pour quand le curseur est modifié :
func sliderValueChanged(_ sender:UISlider!) {
if (!map.selectedAnnotations.isEmpty) {
for overlay in map.overlays {
var temp : MKAnnotation = (map.selectedAnnotations.first)!
if (overlay.coordinate.latitude == temp.coordinate.latitude && overlay.coordinate.longitude == temp.coordinate.longitude) {
let newCirc : MKCircle = MKCircle(center: temp.coordinate, radius: CLLocationDistance(Float(sender.value*1000)))
let region: MKCoordinateRegion = MKCoordinateRegionForMapRect(newCirc.boundingMapRect)
let r: MKCoordinateRegion = map.region
if (region.span.latitudeDelta > r.span.latitudeDelta || region.span.longitudeDelta > r.span.longitudeDelta){
map.setRegion(region, animated: true)
}
map.add(MKCircle(center: temp.coordinate, radius: CLLocationDistance(Float(sender.value*1000))))
map.remove(overlay)
break
}
}
}
}