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ě!