Hjem Sosiale medier Hvordan lage annotasjoner for å tilpasse ditt iOS-kart - dummies

Hvordan lage annotasjoner for å tilpasse ditt iOS-kart - dummies

Video: DIY School Supplies & Room Organization Ideas! 15 Epic DIY Projects for Back to School! 2024

Video: DIY School Supplies & Room Organization Ideas! 15 Epic DIY Projects for Back to School! 2024
Anonim

Ethvert objekt i din iOS-app som samsvarer med MKAnnotation-protokollen, er et annotasjonsobjekt; Vanligvis er annotasjonsobjekter eksisterende klasser i søknadens modell. Arbeidet med et annotasjonsobjekt er å kjenne plasseringen (koordinatene) på kartet sammen med teksten som skal vises i utkallingen.

MKAnnotasjonsprotokollen krever en klasse som vedtar protokollen for å implementere koordinategenskapen. Det kan også valgfritt implementere tittel- og undertekstegenskaper. I så fall vil den teksten bli vist i annotasjonsmeldingen når brukeren tapper annotasjonen.

Merknader er påkrevet av protokollen for å få egenskapene fet i følgende kode:

@property (nonatomic, readwrite ) CLLocationCoordinate2D koordinat; @property (nonatomic, readwrite, copy ) NSString * tittel; @property (nonatomic, readwrite, copy ) NSString * undertittel;

Det er det. Du har allerede eiendommene på plass og initialisert.

Du vil også ha dine interessepunkter for å være merknader.

Du må gå tilbake til objektet for å lage annotasjonene, men først må du legge til en annotasjonsklasse til modellklasse-gruppen ved å følge disse trinnene:

  1. Velg prosjektmodellen i prosjektnavigatoren Klasser gruppe, og høyreklikk deretter på valget og velg Ny fil fra menyen som vises, eller velg Arkiv → Ny → Fil fra hovedmenyen (eller trykk på ⌘ + N) for å åpne dialogboksen Ny fil.

  2. I den venstre kolonnen i dialogboksen, velg Cocoa Touch under iOS-overskriften, velg Objective-C Class-malen i øverste høyre rute, og klikk deretter Neste.

    Du vil se en dialogboks som gjør at du kan velge alternativene for filen din.

  3. Skriv inn kommentar i klassefeltet.

  4. Velg eller skriv NSObject i feltet Underklasse og klikk deretter Neste.

    Merk at avmerkingsbokser Mål for iPad og Med XIB for brukergrensesnitt er dimmet fordi de ikke er relevante her - Hendelser er avledet fra NSObject, og ikke noen type visningskontroller.

  5. I Lagre ark som vises, klikker du Opprett.

Deretter må du legge til koden som er nødvendig for en merknad.

Legg til koden i fet skrift til merknad. h.

#import #import @interface Kommentar: NSObject @property (nonatomic, readwrite) CLLocationCoordinate2D koordinat; @property (nonatomic, readwrite, copy) NSString * tittel; @property (nonatomic, readwrite, copy) NSString * undertittel; -d

Du bruker en generell annotasjonsklasse for å vise interessepunktene.Når du bygger ut appen, kan du også inkludere mer informasjon om interessepunkter og annen informasjon, og opprett en PointofInterest-klasse.

Så kan du gjøre det til en underklasse annotasjon. I en annotasjon kan du også ha en høyre og venstre Callout Accessory-visning, henholdsvis på høyre og venstre side av standard callout boblen.

Visningsvisningen er vanligvis brukt til å koble til mer detaljert informasjon om annoteringen. Du kan også koble til noe som EventController for å vise informasjon om en PointofInterest. Bare mat for tanke.

#import "Trip.h" #import "Destinasjon.h" #import "Hendelser. H" #import "Annotasjon. H" @interface Trip () @property (sterk, ikkeatomisk) NSDictionary * destinationData; @property (sterk, ikkeatomisk) Destinasjon * Destinasjon; @property (strong, nonatomic) Events * hendelser; @property (strong, nonatomic) NSMutableArray * pois; -d

Nå kan du legge til den dristige koden i liste 17-11 til initWith DestinationIndex: i tur. m. Dette vil veksle interessepunktet i plottet (POI) i annoteringer (ok, bare ett) og legge til destinasjonen som en kommentar for å starte opp.

- (id) initWithDestinationIndex: (int) destinationIndex {self = [super init]; hvis (selv)) {NSString * filePath = [[NSBundle mainBundle] pathForResource: @ "Destinasjoner" ofType: @ "plist"]; NSDictionary * destinasjoner = [NSDictionary DictionaryWithContentsOfFile: filePath]; NSArray * destinationsArray = [destinasjoner objectForKey: @ "DestinationData"]; _destinationData = [destinasjonerArray objectAtIndex: destinationIndex]; _destination = [[Destinasjonsallokering] initWithDestinationIndex: destinationIndex]; hendelser = [[Event-tildeling] initWithDestinationIndex: destinationIndex]; NSArray * poiData = selv. destinationData [^ "POI"]; _pois = [[NSMutableArray alloker] initWithCapacity: [poiData count] +1]; [_ pois addObject: selv. mål]; for (NSDictionary * aPOI i poiData) { Annotasjon * annotasjon = [[Annotasjonsallokering] init]; CLLocationCoordinate2D koordinat; koordinat. latitude = [aPOI [@ "Latitude"] doubleValue]; koordinat. lengdegrad = [aPOI [@ "Lengdegrad"] doubleValue]; merknad. koordinat = koordinat; merknad. title = aPOI [@ "Title"]; merknad. undertekst = aPOI [@ "Teksting"]; [selv. pois addObject: annotasjon]; } } returner selv;}

Som du kan se, lager du en annotasjon for hvert interessepunkt i poiData-arrayet og legger det til en matrise du lager - en matrise som vil holde alle kommentarene du vil vise på kartet.

Hvis du ser nøye ut, kan du se at destinasjonen blir lagt til pois-arrayen også. På den måten vil det også vises på kartet.

Du må legge til noen nye metoder i grensesnittet slik at Trip kan returnere merknadene (og en karttittel). Du må også oppdatere Trip Interface. For å gjøre det, legg til den dristige koden til Trip. h.

@interface Trip: NSObject - (UIImage *) destinationImage; - (NSString *) destinasjonsnavn; - (CLLocationCoordinate2D) destinasjonCoordinate; - (id) initWithDestinationIndex: (int) destinationIndex; - (NSString *) vær; - (NSUInteger) numberOfEvents; - (NSString *) getEvent: (NSUInteger) indeks; - (NSArray *) createAnnotations; - (NSString *) mapTitle; -d

Nå kan du legge til alle turmetoder som vil bli brukt av MapController.Start med å legge til createAnnotations-metoden til Trip. m.

- (NSArray *) createAnnotations {return self. pois;}

Selv om pois er et gjensidig array, returnerer du det som et grunnleggende utvalg fordi det er alt som trengs. MapController vil ikke legge til noen kommentarer til den.

Du må også legge til en metode for å returnere karttittelen. Legg til karttittel-metoden til Trip. m.

- (NSString *) mapTitle {return self. mål. destinasjonsnavn;}
Hvordan lage annotasjoner for å tilpasse ditt iOS-kart - dummies

Redaktørens valg

Bruk skjermfeltet til å endre QuickBooks 2014 Rapporter - dummies

Bruk skjermfeltet til å endre QuickBooks 2014 Rapporter - dummies

Skjermbildet i QuickBooks Modify Report dialogboksen lar deg kontrollere rapportintervalldatoen, rapportgrunnlaget, kolonnene og en annen formatering. Bokstavene Rapporter datoområde - Datoer, Fra og Til - gjør det samme som Datoer, Fra og Til bokser i Rapportvinduet. Disse boksene lar ...

Bruk skjermfeltet til å modifisere QuickBooks 2013 Rapporter - dummies

Bruk skjermfeltet til å modifisere QuickBooks 2013 Rapporter - dummies

Hvis du klikker Tilpass rapport, QuickBooks viser dialogboksen Endre rapport, som du kan bruke til å tilpasse en rapport. Når du tilpasser en rapport, endrer du rapportens utseende, layout og informasjonen som den oppsummerer. Dialogboksen Endre rapport ser annerledes ut for ulike rapporttyper. Likevel, hvis du ser forbi ...

Bruk fanen Filtre til å modifisere QuickBooks 2014 Rapporter - dummies

Bruk fanen Filtre til å modifisere QuickBooks 2014 Rapporter - dummies

Filtrene kategorien er trolig den mest interessante og en nyttig kategori som er levert av dialogboksen QuickBooks Modify Report. Filtre-fanen lar deg sette opp filtre som du kan bruke til å angi hvilken informasjon som oppsummeres i rapporten. For å bruke Filtrer-fanen velger du først feltet du vil ha ...

Redaktørens valg

Administrere Cloud Computing Resources - dummies

Administrere Cloud Computing Resources - dummies

I teorien bør cloud computing-tjenester ikke være forskjellig fra ressursene i din eget miljø, bortsett fra at de bor eksternt. Ideelt sett har du en komplett visning av cloud computing-ressursene du bruker i dag, eller vil kanskje bruke i fremtiden. I de fleste skymiljøer kan kunden bare få tilgang til ...

Tips for Going Cloud med datanettverkene dine - dummies

Tips for Going Cloud med datanettverkene dine - dummies

Beregning med datanettverket ditt kan være, hva skal du gjøre for å ta nettverket ditt mot skyen? Her er noen anbefalinger: Ikke stole på en dårlig Internett-tilkobling. Først og fremst, før du tar noen av nettverksoperasjonene i skyen, gjør du ...

Nettverkstjenester levert gjennom Cloud Computing - dummies

Nettverkstjenester levert gjennom Cloud Computing - dummies

Tre forskjellige typer nettverkstjenester kan leveres via skyen: applikasjoner , plattformer og tjenester (infrastruktur). I de følgende avsnittene beskrives disse tre typer skyttjenester i større detalj. Programmer i skyen Vanligvis kalt Software as a Service (SaaS), fullt funksjonelle applikasjoner kan leveres via skyen. En av ...

Redaktørens valg

10 Hadoop Ressurser verdt en bokmerke - dummies

10 Hadoop Ressurser verdt en bokmerke - dummies

Følgende er ti fantastiske Hadoop-ressurser som er verdige til å skape en bokmerke i nettleseren din. Disse ressursene hjelper deg med å skape en livslang læringsplan for Hadoop. Sentralnervesystemet: Apache. org Apache Software Foundation (ASF) er det sentrale fellesskapet for open source-programvareprosjekter. Ikke bare et prosjekt kan være et Apache-prosjekt - ...

Data transformasjon i Hadoop - dummies

Data transformasjon i Hadoop - dummies

Ideen om Hadoop-inspirerte ETL motorer har fått mye trekkraft de siste årene. Hadoop er trods alt en fleksibel datalagrings- og behandlingsplattform som kan støtte store mengder data og operasjoner på dataene. Samtidig er det feiltolerant, og det gir mulighet for kapital- og programvarekostnad ...

Datablokker i Hadoop Distributed File System (HDFS) - dummier

Datablokker i Hadoop Distributed File System (HDFS) - dummier

Når du lagrer en fil i HDFS, bryter systemet det ned i et sett med individuelle blokker og lagrer disse blokkene i forskjellige slave noder i Hadoop-klyngen. Dette er en helt vanlig ting å gjøre, da alle filsystemer bryter filer ned i blokker før de lagres til disk. HDFS har ingen ...