Ich kann nicht herausfinden, wie der Kreis, den ich erstelle, mit einer Benutzereingabe von einer Eingabeaufforderung gerendert wird, die nach dem Radius fragt. Ich erben die userMapView von einer anderen Klasse, aber nichts mit Overlay-Rendering in dieser Klasse, so dass ich nie die RendererForOverlay-Funktion bis jetzt verwendet. Muss ich diese Funktion in der Elternklasse hinzufügen oder mache ich etwas anderes falsch?Das Zeichnen eines Kreises auf einer Karte wird nicht angezeigt
@IBAction func addGeoFencePushed(_ sender: Any) {
let alertController = UIAlertController(title: nil, message: "How large would you like the geofence to be?", preferredStyle: .alert)
let confirmAction = UIAlertAction(title: "Confirm", style: .default) { (_) in
if let field = alertController.textFields?[0] {
// store your data
ALGlobal.sharedInstance.globalDefaults.set(field.text! as String, forKey: "geoFenceSize")
let rad = field.text!
self.drawGeoFence(radius: rad)
} else {
// user did not fill field
}
}
self.present(alertController, animated: true, completion: nil)
}
func drawGeoFence(radius: String){
let bagList = ALGlobal.sharedInstance.bagLists
let bag = bagList?[0]
let center = CLLocationCoordinate2D(
latitude: CLLocationDegrees.init(bag!.latitude),
longitude: CLLocationDegrees.init(bag!.longitude))
let circle = MKCircle(center: center, radius: Double(radius)!)
userMapView.add(circle)
}
func mapView(mapView: MKMapView,rendererForOverlay overlay: MKOverlay) -> MKOverlayRenderer {
let circleRenderer = MKCircleRenderer(overlay: overlay)
circleRenderer.fillColor = UIColor.blue.withAlphaComponent(0.1)
circleRenderer.strokeColor = UIColor.blue
circleRenderer.lineWidth = 1
return circleRenderer
}
Ich bin überrascht, dass Sie keine Compiler-Warnung erhalten. – matt