Nahoru a běží s MapKit
výchozí zobrazení mapy funguje skvěle po vybalení z krabice – můžete posouvat, přibližovat a oddalovat, a tak dále. Pokud vás zajímá, musíte podržet možnost spustit virtuální gesto „špetka – – stačí kliknout a přetáhnout, jako byste se pohybovali jedním prstem, a druhý „prst“ se bude pohybovat v opačném směru.
pomocí asistenta editoru vytvořte zásuvku pro zobrazení mapy s názvem mapView
. Měli byste také nastavit ovladač zobrazení tak, aby byl delegátem zobrazení mapy pomocí Ctrl-přetažením z zobrazení mapy na oranžové a bílé tlačítko řadiče zobrazení těsně nad oblastí rozvržení. Budete také muset přidat import MapKit
do ViewController.swift, takže chápe, co MKMapView
je.
Poznámka: pokud nenastavíte delegáta mapy, zbytek tohoto projektu nebude fungovat příliš dobře.
s tím hotovo, přidáme na naši mapu nějaké anotace. Anotace jsou objekty, které obsahují název, titulky a pozici. První dva jsou oba řetězce, třetí je nový datový typ nazvaný CLLocationCoordinate2D
, což je struktura, která obsahuje zeměpisnou šířku a délku, kde anotace by měly být umístěny.
mapové anotace nejsou popsány jako třída, ale jako protokol. To je něco, co jste ještě neviděli, protože dosud byly protokoly o metodách. Pokud se však chceme přizpůsobit protokolu MKAnnotation
, který musíme přijmout, abychom vytvořili anotace map, uvádí, že v naší anotaci musíme mít souřadnici. To dává smysl, protože nemá smysl mít na mapě anotaci, pokud nevíme, kde je. Název a titulky jsou volitelné, ale stejně je poskytneme.
vytvořte nový soubor a zvolte iOS > zdroj > Třída Cocoa Touch. Udělejte z něj podtřídu NSObject
A pojmenujte ji „kapitál“. S mapovými anotacemi nemůžete používat struktury a musíte zdědit NSObject
, protože musí být interaktivní s kódem Objective-C společnosti Apple.
změňte obsah kapitálu.rychle k tomu:
existují naše tři vlastnosti, spolu se základním inicializátorem, který pouze kopíruje data, která jsou dána. Opět zde musíme použít self.
, protože parametry, které jsou předávány, mají stejný název jako naše vlastnosti. Přidal jsem do souboru import MapKit
, protože tam jsou definovány MKAnnotation
a CLLocationCoordinate2D
.
S tímto vlastní podtřídu, můžeme vytvořit hlavní města předáním v jejich jméno, koordinovat a informace – budu pomocí info
majetek držet jeden k nezaplacení (čti: off-the-manžeta, kouřila jsem na zeměpis) informační nugget o každém městě. Jste vítáni dělat lépe!
vložte tyto řádky do metody viewDidLoad()
ViewController.swift:
tyto objekty Capital
odpovídají protokolu MKAnnotation
, což znamená, že je můžeme odeslat do zobrazení mapy pro zobrazení pomocí metody addAnnotation()
. Dejte to těsně před koncem viewDidLoad()
:
Alternativně můžete přidat více anotací najednou pomocí metody addAnnotations()
. Pomocí tohoto byste nahradili těchto pět řádků tímto:
mapView.addAnnotations()
to vytvoří pole z anotací a odešle jej v jednom kuse do zobrazení mapy.
pokud nyní spustíte svůj program, uvidíte na mapě piny pro každé město a klepnutím na kterýkoli z nich zobrazíte název města. Ale kde je majetek info
? Chcete-li zobrazit více informací, musíme přizpůsobit zobrazení použité k zobrazení anotací.
sponzorováno už vás nebaví ztrácet čas laděním aplikace Swift? Sada SDK Instabug je zde, aby vám pomohla minimalizovat dobu ladění tím, že vám poskytne kompletní podrobnosti o zařízení, síťové protokoly a kroky reprodukce s každým hlášením chyby. Všechna data jsou připojena automaticky. Nastavení vyžaduje pouze řádek kódu. Začněte bezplatnou zkušební verzi a dodávejte kvalitní aplikace!
zkuste to zdarma
sponzorujte Hacking s Swift a oslovte největší komunitu Swift na světě!