IOS SDK Snabbtips Arbeta med animeringar

Med iOS SDK-animationer kan du krydda dina applikationer med tilltalande visuella effekter och övergångar. Med iOS SDK används animeringar ofta för att ompositionera vyer, ändra storlek på vyer, ta bort eller lägga till vyer från vyhierarkier och dölja synpunkter helt och hållet. Läs vidare för att lära dig hur dessa effekter uppnås!

För att skapa en animering med iOS SDK behöver du inte skriva någon anpassad ritningskod. Allt du behöver göra är att utlösa animationerna med några enkla samtal och Core Animation-ramen kommer att göra det hårda arbetet. Med denna ram kan du skapa en animering på några få rader kod, och det är en bra sak för oss som latare utvecklare!

I UIKit utförs animeringar med UIView-objekt. Du kan animera ändringar i visningsegenskaper eller använda övergångs animeringar för att ersätta en uppsättning visningar med en annan. Du kan animera följande UIView-egenskaper med UIKit:

  • ram
  • gräns
  • Centrum
  • omvandla
  • alfa
  • bakgrundsfärg
  • contentStretch

Om din ansökan körs i iOS 3.2 och tidigare måste du använda beginAnimations: sammanhang: och commitAnimations klassmetoder för UIView att definiera dina animationsblock. Det här är den metod jag ska använda i den här snabba tipsen, eftersom den fungerar på alla iOS-versioner.

För att starta ett animationsblock, kommer du att använda [UIView startAnimations: (NSString *) sammanhang: (void *)];. Efter att du har skrivit koden för att konfigurera din animering (dvs. ändra UIView-egenskaperna) avslutar du animeringsblocket med [UIView commitAnimations];.

Du kan konfigurera ett animeringsblock med följande UIView-klassmetoder:

  • animations startdatum
  • animationsfördröjning
  • animeringstid
  • animeringskurva
  • animering repetera räkna
  • animation repeat autoreverses
  • animation delegat
  • animering kommer att starta väljaren
  • animering stoppade väljaren
  • animations varelser från nuvarande tillstånd

Med början och commit-koden ovan kan du skapa en animering. För att se detta i praktiken, låt oss titta på ett exempel:

 [UIView startAnimations: @ "My First Animation" -kontext: noll]; [UIView setAnimationDuration: 1.0]; [UIView setAnimationDelay: 2.0]; self.view.backgroundColor = [UIColor redColor]; [UIView commitAnimations];

Som du kan se började jag animationsblocket med [UIView startAnimations: (NSString *) sammanhang: (void *)]; och kallade det? Min första animation ?. Därefter ställer jag upp varaktigheten till 1 sekund och fördröjningen till 2 sekunder, så animeringen börjar efter två sekunder och det tar 1 sekund att slutföra. Med denna animering anpassar jag vyens bakgrundsfärg till en röd färg. Om vyens bakgrundsfärg redan var röd ser du inte animeringen, men den kommer fortfarande att animera. Äntligen slutar jag mitt animationsblock med [UIView commitAnimations];.

Här är ett exempel på en animation där vi roterar i en vy:

 [UIView startAnimations: @ "Rotate" context: nil]; [UIView setAnimationDuration: 1.0]; [UIView setAnimationDelegate: self]; [UIView setAnimationDidStopSelector: @selector (rotateBack)]; TheView.transform = CGAffineTransformMakeRotation (M_PI); [UIView commitAnimations];

Inställningen av det här animationsblocket ser ut som det föregående, bara den här gången använde jag animationsdelegationen och använde egenskapen för transformation. Om du vill använda stoppade väljaren metod måste du ange delegat till själv. Så, om den här animeringen är färdig med metoden rotateBack kommer att kallas. Med egenskapen Transform kan du skala, rotera eller översätta en vy. Transformationen kommer alltid att vara i 2D. För rotationsvinkeln använde jag M_PI som du kan se. Som standard arbetar Objective-C med radianer istället för grader. 360 grader är samma som 2?, Så vyn roterar 180 grader.

 - (void) rotateBack [UIView beginAnimations: @ "Rotate back" -kontext: noll]; [UIView setAnimationDuration: 1.0]; TheView.transform = CGAffineTransformIdentity; [UIView commitAnimations]; 

Detta är den metod som kommer att ringas när rotationsanimationen är klar. I detta animationsblock roterar vi vyn tillbaka till dess ursprungliga plats. Vi gör det med CGAffineTransformIdentity fungera. Detta kommer att ångra rotationsomvandlingen.

Intresserad av att lära sig mer? Du kan se några fler animationsexempel i den bifogade källkoden.

Jag hoppades att du gillade den här snabba tipsen iOS SDK på animeringar! Vänligen meddela mig din feedback genom att lämna en kommentar nedan. Du kan också föreslå idéer för ytterligare handledning för att vi ska täcka i framtiden!