iOS SDK Quick Tip werken met animaties

Met iOS SDK-animaties kunt u uw toepassingen spannender maken met aantrekkelijke visuele effecten en overgangen. Met de iOS SDK worden animaties vaak gebruikt om weergaven opnieuw te positioneren, de grootte van de weergaven te wijzigen, om weergaven van weergavehiërarchieën te verwijderen of toe te voegen en om weergaven helemaal te verbergen. Lees verder om te leren hoe deze effecten worden bereikt!

Als u een animatie met de iOS SDK wilt maken, hoeft u geen aangepaste tekencode te schrijven. Het enige wat u hoeft te doen is de animaties activeren met een paar eenvoudige oproepen en het Core Animation-framework zal het harde werk doen. Met dit framework kun je een animatie maken in slechts een paar regels code, en dat is goed voor ons als luie ontwikkelaars!

In UIKit worden animaties uitgevoerd met UIView-objecten. U kunt wijzigingen in de eigenschappen van de weergave animeren of overgangsanimaties gebruiken om de ene set weergaven te vervangen door een andere. U kunt de volgende UIView-eigenschappen animeren met UIKit:

  • montuur
  • bounds
  • centrum
  • transformeren
  • alpha
  • Achtergrond kleur
  • contentStretch

Als uw toepassing wordt uitgevoerd in iOS 3.2 en eerder, moet u de beginAnimations: context: en commitAnimations klassemethoden van UIView om uw animatieblokken te definiëren. Dit is de methode die ik zal gebruiken in deze snelle tip, omdat deze werkt op alle iOS-versies.

Om een ​​animatieblok te beginnen, zult u gebruiken [UIView beginAnimations: (NSString *) context: (void *)];. Nadat u de code hebt geschreven om uw animatie in te stellen (dat wil zeggen de UIView-eigenschappen te wijzigen), beëindigt u het animatieblok met [UIView commitAnimations];.

U kunt een animatieblok configureren met de volgende UIView-klassenmethoden:

  • startdatum animatie
  • animatie vertraging
  • duur van de animatie
  • animatiecurve
  • animatie herhaling tellen
  • animatie herhaalt autoreverses
  • animatie afgevaardigde
  • animatie start selector
  • animatie heeft de selector gestopt
  • animatie wezens van de huidige staat

Met de bovenstaande begin- en commit-code kunt u een animatie maken. Om dit in de praktijk te zien, laten we een voorbeeld bekijken:

 [UIView beginAnimations: @ "My First Animation" -context: nul]; [UIView setAnimationDuration: 1.0]; [UIView setAnimationDelay: 2.0]; self.view.backgroundColor = [UIColor redColor]; [UIView commitAnimations];

Zoals je kunt zien, startte ik het animatieblok met [UIView beginAnimations: (NSString *) context: (void *)]; en noemde het? Mijn eerste animatie ?. Daarna stel ik de duur in op 1 seconde en de vertraging op 2 seconden, dus de animatie start na twee seconden en het duurt 1 seconde om te voltooien. Met deze animatie animeer ik de achtergrondkleur van de weergave naar een rode kleur. Als de achtergrondkleur van het aanzicht al rood was, zult u de animatie niet zien, maar deze zal nog steeds bewegen. Eindelijk eindig ik mijn animatieblok met [UIView commitAnimations];.

Hier is een voorbeeld van een animatie waarin we roteren in een weergave:

 [UIView beginAnimaties: @ "Roteer" -context: nul]; [UIView setAnimationDuration: 1.0]; [UIView setAnimationDelegate: self]; [UIView setAnimationDidStopSelector: @selector (rotateBack)]; theView.transform = CGAffineTransformMakeRotation (M_PI); [UIView commitAnimations];

De opzet van dit animatieblok ziet er hetzelfde uit als het vorige blok, alleen deze keer dat ik de animatiegevereerde gebruikte en de transform-eigenschap gebruikte. Als u de heeft de selector gestopt methode, moet u de gedelegeerde instellen op zelf. Dus, als deze animatie is gedaan, de methode rotateBack zal gebeld worden. Met de eigenschap transform kunt u een weergave schalen, roteren of vertalen. De transformatie zal altijd in 2D zijn. Voor de hoek van de rotatie heb ik M_PI gebruikt zoals je kunt zien. Objective-C werkt standaard met radialen in plaats van graden. 360 graden is hetzelfde als 2 ?, dus het beeld zal 180 graden draaien.

 - (void) rotateBack [UIView beginAnimations: @ "Rotatie terug" -context: nul]; [UIView setAnimationDuration: 1.0]; theView.transform = CGAffineTransformIdentity; [UIView commitAnimations]; 

Dit is de methode die wordt aangeroepen wanneer de rotatie-animatie is voltooid. In dit animatieblok roteren we het beeld terug naar zijn oorspronkelijke plaats. Dat doen we met de CGAffineTransformIdentity functie. Hiermee wordt de rotatie-transformatie ongedaan gemaakt.

Interesse om meer te leren? U kunt nog meer animatievoorbeelden in de bijgevoegde broncode zien.

Ik hoopte dat je deze iOS SDK snelle tip over animaties leuk vond! Laat me je feedback weten door hieronder een reactie achter te laten. U kunt ook ideeën voor aanvullende zelfstudies voorstellen die we in de toekomst kunnen bespreken!