sus și să fie difuzate cu MapKit
vizualizarea implicită a hărții funcționează excelent din cutie-puteți să vă deplasați, să măriți și să micșorați și așa mai departe. Dacă vă întrebați, trebuie să țineți apăsată opțiunea pentru a declanșa un gest virtual de „ciupire” – trebuie doar să faceți clic și să trageți ca și cum ați mișca un deget, iar celălalt” deget ” se va deplasa în direcția opusă.
folosind editorul asistent, creați o priză pentru vizualizarea hărții numită mapView
. De asemenea, ar trebui să setați controlerul de vizualizare să fie delegatul vizualizării hărții prin glisarea Ctrl din vizualizarea hărții în butonul controlerului de vizualizare portocaliu și alb chiar deasupra zonei de aspect. De asemenea, va trebui să adăugați import MapKit
la ViewController.swift astfel încât să înțeleagă ce MKMapView
este.
Notă: Dacă nu setați delegatul hărții, restul acestui proiect nu va funcționa prea bine.
cu asta gata, vom adăuga câteva adnotări pe harta noastră. Adnotările sunt obiecte care conțin un titlu, un subtitlu și o poziție. Primele două sunt ambele șiruri, al treilea este un nou tip de date numit CLLocationCoordinate2D
, care este o structură care deține o latitudine și longitudine pentru locul în care ar trebui plasată adnotarea.
adnotările hărții nu sunt descrise ca o clasă, ci ca un protocol. Acest lucru este ceva ce nu ați mai văzut până acum, deoarece până acum protocoalele au fost despre metode. Dar dacă vrem să ne conformăm protocolului MKAnnotation
, care este cel pe care trebuie să-l adoptăm pentru a crea adnotări de hartă, acesta afirmă că trebuie să avem o coordonată în adnotarea noastră. Asta are sens, pentru că nu are rost să avem o adnotare pe o hartă dacă nu știm unde este. Titlul și subtitrarea sunt opționale, dar le vom oferi oricum.
creați un fișier nou și alegeți iOS > sursă > clasa Cocoa Touch. Faceți-o o subclasă de NSObject
și denumiți-o”Capital”. Cu adnotările hărții, nu puteți utiliza structs și trebuie să moșteniți de la NSObject
, deoarece trebuie să fie interactiv cu codul Objective-C al Apple.
modificați conținutul capitalului.swift la acest:
există cele trei proprietăți ale noastre, împreună cu un inițializator de bază care copiază doar datele pe care le oferă. Din nou, trebuie să folosim self.
aici, deoarece parametrii trecuți sunt același nume cu proprietățile noastre. Am adăugat import MapKit
la fișier pentru că acolo sunt definite MKAnnotation
și CLLocationCoordinate2D
.
cu această subclasă personalizată, putem crea capitale trecând în numele, coordonatele și informațiile lor – Voi folosi proprietatea info
pentru a deține o informație neprețuită (citiți: off-the-cuff, am supt la geografie) nugget informațional despre fiecare oraș. Sunteți bineveniți să faceți mai bine!
pune aceste linii în viewDidLoad()
metoda de ViewController.swift:
aceste obiecte Capital
sunt conforme cu protocolul MKAnnotation
, ceea ce înseamnă că îl putem trimite la vizualizarea hărții pentru afișare folosind metoda addAnnotation()
. Pune acest lucru chiar înainte de sfârșitul anului viewDidLoad()
:
alternativ, puteți adăuga mai multe adnotări simultan folosind metoda addAnnotations()
. Folosind acest lucru, v-ar înlocui aceste cinci linii cu acest:
mapView.addAnnotations()
aceasta creează o matrice din adnotări și o trimite într-o singură bucată la vizualizarea hărții.
dacă rulați programul acum, veți vedea Pinuri pe hartă pentru fiecare oraș și puteți atinge oricare dintre ele pentru a vedea numele orașului. Dar unde este proprietatea info
? Pentru a afișa mai multe informații, trebuie să personalizăm vizualizarea utilizată pentru a afișa adnotările.
sponsorizat te-ai saturat de a pierde timpul de depanare aplicația Swift? SDK-ul Instabug este aici pentru a vă ajuta să minimizați timpul de depanare, oferindu-vă detalii complete despre dispozitiv, jurnale de rețea și pași de reproducere cu fiecare raport de eroare. Toate datele sunt atașate automat. Este nevoie doar de o linie de cod pentru a configura. Începeți acum încercarea gratuită și expediați aplicații de calitate!
încercați-l gratuit
sponsorizați Hacking-ul cu Swift și ajungeți la cea mai mare comunitate Swift din lume!