Up and running with MapKit

Die Standard-Kartenansicht funktioniert hervorragend – Sie können schwenken, vergrößern und verkleinern und so weiter. Wenn Sie sich gefragt haben, müssen Sie die Option gedrückt halten, um eine virtuelle „Pinch“ –Geste auszulösen – klicken und ziehen Sie einfach, als würden Sie einen Finger bewegen, und der andere „Finger“ bewegt sich in die entgegengesetzte Richtung.

Erstellen Sie mit dem Assistenten-Editor eine Steckdose für Ihre Kartenansicht mit dem Namen mapView. Sie sollten Ihren View Controller auch als Delegaten der Kartenansicht festlegen, indem Sie bei gedrückter Strg-Taste von der Kartenansicht auf die orangefarbene und weiße View Controller-Schaltfläche direkt über dem Layoutbereich ziehen. Sie müssen auch import MapKit zu ViewController hinzufügen.swift versteht also, was MKMapView ist.

Hinweis: Wenn Sie den Delegaten der Karte nicht festlegen, funktioniert der Rest dieses Projekts nicht so gut.

Nachdem das erledigt ist, werden wir einige Anmerkungen zu unserer Karte hinzufügen. Anmerkungen sind Objekte, die einen Titel, einen Untertitel und eine Position enthalten. Die ersten beiden sind beide Zeichenfolgen, der dritte ist ein neuer Datentyp namens CLLocationCoordinate2D , eine Struktur, die einen Breiten- und Längengrad für den Ort enthält, an dem die Anmerkung platziert werden soll.

Map-Annotationen werden nicht als Klasse, sondern als Protokoll beschrieben. Das haben Sie noch nie gesehen, denn bisher ging es bei Protokollen nur um Methoden. Wenn wir jedoch dem MKAnnotation -Protokoll entsprechen möchten, das wir zum Erstellen von Kartenanmerkungen verwenden müssen, heißt es, dass wir eine Koordinate in unserer Anmerkung haben müssen. Das macht Sinn, denn es macht keinen Sinn, eine Anmerkung auf einer Karte zu haben, wenn wir nicht wissen, wo sie sich befindet. Titel und Untertitel sind optional, aber wir stellen sie trotzdem zur Verfügung.

Erstellen Sie eine neue Datei und wählen Sie iOS > Source > Cocoa Touch Class. Machen Sie es zu einer Unterklasse von NSObject und nennen Sie es „Capital“. Mit Kartenanmerkungen können Sie keine Strukturen verwenden und müssen von NSObject erben, da es mit Apples Objective-C-Code interaktiv sein muss.

Ändern Sie den Inhalt des Kapitals.schnell zu diesem:

Es gibt unsere drei Eigenschaften zusammen mit einem grundlegenden Initialisierer, der nur die angegebenen Daten kopiert. Auch hier müssen wir self. verwenden, da die übergebenen Parameter denselben Namen wie unsere Eigenschaften haben. Ich habe der Datei import MapKit hinzugefügt, da dort MKAnnotation und CLLocationCoordinate2D definiert sind.

Mit dieser benutzerdefinierten Unterklasse können wir Hauptstädte erstellen, indem wir ihren Namen, ihre Koordinaten und Informationen übergeben – ich werde die info Eigenschaft verwenden, um ein unbezahlbares (sprich: off-the-cuff, ich saugte an Geographie) Informations-Nugget über jede Stadt zu halten. Sie können es gerne besser machen!

Fügen Sie diese Zeilen in die viewDidLoad() -Methode von ViewController ein.swift:

Diese Capital Objekte entsprechen dem MKAnnotation -Protokoll, was bedeutet, dass wir sie mit der addAnnotation() -Methode zur Anzeige an die Kartenansicht senden können. Setzen Sie dies kurz vor dem Ende von viewDidLoad():

Alternativ können Sie mit der Methode addAnnotations() mehrere Anmerkungen gleichzeitig hinzufügen. Damit würden Sie diese fünf Zeilen durch folgende ersetzen:

mapView.addAnnotations()

Dadurch wird ein Array aus den Anmerkungen erstellt und in einem Knoten an die Kartenansicht gesendet.

Wenn Sie Ihr Programm jetzt ausführen, werden auf der Karte Pins für jede Stadt angezeigt, und Sie können auf eine beliebige Stadt tippen, um den Namen der Stadt anzuzeigen. Aber wo ist die Eigenschaft info? Um weitere Informationen anzuzeigen, müssen wir die Ansicht anpassen, in der die Anmerkungen angezeigt werden.

GESPONSERT Sind Sie es leid, Zeit mit dem Debuggen Ihrer Swift-App zu verschwenden? Das SDK von Instabug hilft Ihnen dabei, die Debugging-Zeit zu minimieren, indem es Ihnen bei jedem Fehlerbericht vollständige Gerätedetails, Netzwerkprotokolle und Reproduktionsschritte zur Verfügung stellt. Alle Daten werden automatisch angehängt. Zum Einrichten ist nur eine Codezeile erforderlich. Starten Sie jetzt Ihre kostenlose Testversion und versenden Sie hochwertige Apps!

Kostenlos testen

Sponsern Sie Hacking mit Swift und erreichen Sie die weltweit größte Swift-Community!