Ich verwende diese Funktion zum Rendern der MKMapView-Instanz in image:
%Vor%Das funktioniert gut. Aber mit iphone4 hat das gerenderte Bild nicht die gleiche Auflösung wie es wirklich auf dem Gerät hat. Auf dem Gerät habe ich die Kartenansichtsqualität 640x920 und das gerenderte Bild hat die Auflösung 320x460. Dann habe ich die Größe verdoppelt, die der UIGraphicsBeginImageContext () - Funktion zur Verfügung gestellt wird, die aber den einzigen oberen linken Bildteil gefüllt hat.
Frage: Gibt es eine Möglichkeit, die Karte mit einer Auflösung von 640x920 in ein Bild zu rendern?
Verwenden Sie UIGraphicsBeginImageContextWithOptions
anstelle von UIGraphicsBeginImageContext
:
Weitere Informationen finden Sie unter QA1703 . Es sagt:
Hinweis: Ausgehend von iOS 4, UIGraphicsBeginImageContextWithOptions ermöglicht es Ihnen, mit einer Skala zu versehen Faktor. Ein Skalierungsfaktor von Null setzt es zu dem Skalierungsfaktor des Geräts Hauptbildschirm. Dies ermöglicht es Ihnen, zu bekommen die schärfste, höchste Auflösung Schnappschuss des Displays, einschließlich a Retina-Anzeige.
iOS 7 führte eine neue Methode ein, um Screenshots eines MKMapView zu erstellen. Es ist jetzt möglich, die neue MKMapSnapshot-API wie folgt zu verwenden:
%Vor%Derzeit werden alle Überlagerungen und Anmerkungen nicht gerendert. Sie müssen sie anschließend selbst auf das resultierende Snapshot-Bild rendern. Das bereitgestellte MKMapSnapshot-Objekt verfügt über eine praktische Hilfsmethode für die Zuordnung zwischen Koordinaten und Punkten:
%Vor%