Innholdsfortegnelse:
- Vis geometri og koordinatsystemer
- Poeng mot piksler
- En visnings størrelse og posisjon
- Arbeide med datastrukturer
Video: String Theory Explained – What is The True Nature of Reality? 2024
Heldigvis er det meste av det du trenger å gjøre så langt som iOS-animasjon er opptatt, allerede bygd inn i rammen. Noen visningsegenskaper kan animeres, noe som betyr at du bare må fortelle visningen hvor du skal begynne og hvor du skal avslutte flyttingen, og noen få andre valgfrie parametere, og du er ferdig. Selve utsikten (i UIVIew-basen klassen) har funksjonaliteten til å animere flyttingen.
For å gi deg litt kontekst for å forstå hvordan animasjon på iPhone og iPad fungerer, må du forstå hva som foregår under hetten når et rammeverk tar seg av animasjonsarbeidene for deg. Nærmere bestemt må du dykke litt dypere inn i visninger, deres egenskaper og koordinatsystemene på iPad.
Vis geometri og koordinatsystemer
Standardkoordinatsystemet i UIKit plasserer opprinnelsen i øverste venstre hjørne og har akser som strekker seg ned og til høyre fra opprinnelsespunktet. Koordinatverdier er representert ved hjelp av flytende punktnumre, og du trenger ikke å bekymre deg for skjermoppløsningen; rammene tar seg av det automatisk.
I tillegg til skjermkoordinatsystemet definerer visninger sine egne lokale koordinatsystemer som lar deg spesifisere koordinater i forhold til visningen i stedet for i forhold til skjermen. I praksis gjør du ofte begge, avhengig av hva du prøver å gjøre.
Fordi hver visning og vindu definerer sitt eget lokale koordinatsystem, må du alltid være oppmerksom på hvilket koordinatsystem du bruker, når du tegner eller håndterer koordinater. Det høres uheldig, men det er egentlig ikke så stor en avtale etter at du kommer inn i rytmen for å jobbe med koordinatsystemene.
Poeng mot piksler
Ok, så hvor kommer den høyoppløste Retina-skjermen inn?
Alle koordinatverdier og avstander er spesifisert ved hjelp av flytende punktverdier i enheter som kalles poeng . Det viktigste å forstå om poeng er at de gir en fast referanseramme for tegning. Den faste referanserammen er avledet fra det faktum at et punkt er 1/72 av en tomme. (Dette ble angitt for den opprinnelige Macintosh og LaserWriter. Et punkt er en allment akseptert lengdeenhet.)
Den originale Macintosh hadde en skjermoppløsning på 72 piksler per tomme (PPI). Dette betydde at poeng og piksler var identiske. Men over tid har teknologien blitt avansert og nå har pikselstørrelsen og densiteten (PPI) endret seg. Ikke lenger har de fleste enheter faktisk 72 PPI, men fordi piksler og poeng har blitt brukt om hverandre, har ankomsten av høydensitetsdisplayer som Retina-skjermen forårsaket forvirring.
Når du snakker om størrelse eller plassering, snakker du sannsynligvis i poeng. Hvis du snakker om oppløsningen av bildet du vil plassere på et objekt med en bestemt størrelse eller plassering, snakker du sannsynligvis i piksler. På et retina-skjermbilde vil bildet ha to ganger pikslene du har på en ikke-retinaldisplay, og du bruker sannsynligvis en egen. png-fil.
Hold denne forskjellen i bakhodet, spesielt når du ser på gammel (før 2013) dokumentasjon. Du må sortere ut når "piksel" betyr piksel og når det betyr punkt. Noen utviklere bruker som en grunnleggende tommelfingerregel, "Xcode = poeng og Photoshop = piksler. "Det er en generalisering og det er ikke sant i alle tilfeller, men som generaliseringer går, er det generelt riktig.
En visnings størrelse og posisjon
Et visningsobjekts plassering i et koordinatsystem bestemmes ved hjelp av enten rammen eller dens midtre egenskap:
-
Rammeegenskapen inneholder rammekvadratet som angir størrelsen og plasseringen av visningen i sin overvåkings koordinatsystem.
-
Senteregenskapen inneholder det kjente senterpunktet for utsikten i overvåkings koordinatsystem.
I dine vandringer kan du en dag møte eiendomsgrensen. Det er bundet opp med grense-rektangelet, som spesifiserer størrelsen på visningen (og innholdets opprinnelse) i -visningens eget lokale koordinatsystem.
Visningskoordinatene du angir for visningens plassering i Interface Builder, er i poeng. Koordinatene starter fra 0, 0 øverst til venstre og øker mens du går ned og til høyre. Du plasserer vanligvis objekter under 20-punkts statuslinjen, men med iOS 7 kan visningene vises via en navigasjon eller verktøylinje, så du kan plassere dem enda lavere hvis du ikke vil at de skal vises.
Arbeide med datastrukturer
I tillegg til å vite hva som skjer der, må du forstå hvordan datastrukturer påvirker hvordan du arbeider med visninger.
Rammen er en CGRect - en struktur (en C-språktype som aggregerer konseptuelt relaterte variabler i en enkelt type) med en opprinnelse og en størrelse som består av CGPoints. CG står her for Core Graphics, en av rammene som er inkludert av Xcode når du valgte Single View-applikasjonsmalen. Følgende kode viser CGRect struct:
struct CGRect {CGPoint opprinnelse; CGSize størrelse;};
En opprinnelse er en CGPoint med en x- og y-verdi, og en CGSize er en CGPoint med en bredde- og høydeverdi. Følgende kode viser CGPoint-strukturen:
struct CGPoint {CGFloat x; CGFloat y;}; struktur CGSize {CGFloat bredde; CGFloat høyde;};
På samme måte er senteregenskapen en CGPoint. Og det er alt du trenger å vite om datastrukturene du skal bruke.