In meiner App möchte ich die Anmerkungen auf einem MKMapView anzeigen, aber ich möchte nicht, dass der Benutzer die Kartenkacheln sehen, ich möchte, dass sie vollständig schwarz sind. Wie kann ich dieses Aussehen erreichen?iOS Swift MKMapView entfernen Kartenkacheln
2
A
Antwort
2
Der Mechanismus zum Ersetzen der Kartenkacheln basiert auf der MKOverlayRenderer-Klasse. Sie müssen Ihre eigene MKOverlayRenderer-Unterklasse erstellen, in der Sie die Anzeige der Kartenkacheln anpassen können. In dem ViewController, in dem Sie Ihre Map verwenden, müssen Sie ein Overlay zu Ihrer MKMapView hinzufügen, um die Rendering-Methode von MKMapViewDelegate auszulösen.
Beispielcode:
//Subclass of MKOverlayRenderer to tint the tiles
class MyCustomOverlayRenderer: MKOverlayRenderer {
override func draw(_ mapRect: MKMapRect, zoomScale: MKZoomScale, in context: CGContext) {
let drawRect = self.rect(for: mapRect)
context.setFillColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 1.0)
context.fill(drawRect)
}
}
//Custom View Controller where the map can be found
class ViewController: UIViewController {
@IBOutlet weak var mapView: MKMapView!
override func viewDidLoad() {
super.viewDidLoad()
self.mapView.delegate = self
let tiles = MKTileOverlay(urlTemplate: nil)
tiles.canReplaceMapContent = true
self.mapView.add(tiles)
}
//Custom method to add an annotation onto your mapView
@IBAction func mapViewTapped(_ sender: Any) {
let annotation = MyCustomAnnotation(coordinate: self.mapView.centerCoordinate, title: "MyAnnotation")
self.mapView.addAnnotation(annotation)
}
}
extension ViewController : MKMapViewDelegate
{
//use your custom renderer to render all tiles
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
return MyCustomOverlayRenderer(overlay: overlay)
}
//show a pin in the middle of you map
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
return nil
}
}
Und das Ergebnis ist:
Verwandte Themen
- 1. Swift MKMapView KVO
- 2. ios MKMapView in Grau?
- 3. MKMapView Annotation nicht richtig entfernen?
- 4. iOS Swift - Zeichnen Sie Route mit mehreren Koordinaten in MKMapView
- 5. Swift MKMapView Polygon Overlay Glitching
- 6. Offline-Kartenkacheln werden nicht mehr angezeigt
- 7. IOS Swift entfernen Hauptstädte von Google Maps
- 8. Ändern Pin-Bild auf MKMapView in Swift
- 9. Swift: Zeichnen Sie eine Halbkugel in MKMapView
- 10. Deaktiviere Doppeltippen-Zoom in MKMapView (iOS 6)
- 11. Aktueller Standort Button auf ios MKMapView
- 12. IOS/Objective-c: Problem auf MKMapView
- 13. Gelegentlich stürzt iOS 6 MKMapView in initWithFrame
- 14. MKMapView zeigt leeren Bildschirm in iOS 8
- 15. Stop iOS 7 MKMapView von undichten Speicher
- 16. Wie kann ich MKMapViews Cache für Kartenkacheln löschen?
- 17. Swift MKMapView Eine Pin-Annotation an den aktuellen Standort senden
- 18. Wie Overlay zu MKMapView auf der ganzen Weltkarte hinzufügen iOS Swift
- 19. Transparent navbar swift iOS
- 20. Wie Klammern in NSMutableArray in iOS Swift entfernen?
- 21. So entfernen Sie zusätzliche leere Zellen in TableViewController, iOS - Swift
- 22. IOS swift kann ich ungenutzte Zeilen in einem TableView entfernen
- 23. iOS Swift: Entfernen TableViewCell durch Swipe wie Google Now Karten
- 24. Entfernen eines View-Controllers von einem anderen UIViewController Swift iOS
- 25. iOS Swift 3 - Entfernen Overlay UIView nach Panel Tippen
- 26. Swift MKMapView wird manchmal null und App stürzt
- 27. (Swift 2.1) Lade Anmerkungen für den sichtbaren Bereich in MKMapView
- 28. Probleme beim Entfernen von Anmerkungen aus einer MKMapView
- 29. IOS 6 MKMapView stürzt ab auf [EAGLContext setCurrentContext]
- 30. So erreichen Sie den maximalen Zoomlevel auf iOS MKMapView