Core Animation: Einfaches Fading-Effekt Demo

In dieser Demo wollen wir einen recht einfachen Effekt mit Core Animation realisieren.

Wir wollen erreichen, dass ein einfacher Text nach dem Laden der View eingeblendet wird. Diese Einblendung soll in einem Zeitfenster von 5 Sekunden stattfinden und schön „weich“ vonstatten gehen.

Dann legen wir direkt einmal los. Zunächst erstellen wir eine Single Based Application. Anschließend wechseln wir direkt zu unserem Storyboard und fügen ein UILabel ein, in das wir einen beliebigen Text schreiben:

UILabel in der View

Anschließend bearbeiten wir unsere .h-Datei.
Wir deklarieren zum einen unser UILabel als IBOutlet und legen eine UIView an.
Zudem deklarieren wir die Methode, die später unsere Animation ausführen soll.

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
{
    IBOutlet UILabel *label;
    UIView *myView;
}

@end

Direkt danach geht es an die .m-Datei.
Die schon implementierte Methode „– (void)viewWillAppear:(BOOL)animated“ wird automatisch aufgerufen sobald die betroffene View geladen wurde. Das scheint genau das zu sein was wir suchen, daher vervollständigen wir deren Implementierung bzw. passen diese auf unsere Bedürfnisse an:

- (void)viewWillAppear:(BOOL)animated
{
    // Labels alpha value is 0 (invisible)
    label.alpha = 0;
    [UIView beginAnimations:nil context:nil];

    // Labels alpha value will increase to 1 (duration = 5 seconds)
    [UIView setAnimationDuration:5];
    label.alpha = 1;
    [UIView commitAnimations];

    [super viewWillAppear:animated];
}

Anschließend sollte euer nach und nach Label schön geschmeidig erscheinen, wenn ihr eure App kompiliert.