2012-09-17 9 views
24

Ich arbeite an einem Benachrichtigungssystem in meinem iPhone Spiel und möchte, dass ein Bild auf dem Bildschirm erscheint und nach 2 Sekunden automatisch ausblendet.Zeige und verblasse UIImageView nach 2 Sekunden

  1. Der Benutzer klickt auf eine Schaltfläche, mit der Methode „popupImage“
  2. Ein Bild auf dem Bildschirm in einer bestimmten Stelle erscheint ruft, ist es nicht ausblendet verblassen müssen selbst in
  3. Das Bild, nachdem sie auf dem Bildschirm für 2 Sekunden.

Gibt es eine Möglichkeit, dies zu tun? Danke im voraus.

Antwort

53

Verwenden UIView dedizierte Methoden für das Starten.

Also stellen Sie sich vor, Sie haben bereits Ihre UIImageView bereit, bereits erstellt und zur Hauptansicht hinzugefügt, aber einfach versteckt. Ihre Methode einfach brauchen, um es sichtbar zu machen, und starten Sie eine Animation 2 Sekunden später verblassen, durch seine „alpha“ Eigenschaft 1,0-0,0 Animieren (während einer 0,5s Animation):

-(IBAction)popupImage 
{ 
    imageView.hidden = NO; 
    imageView.alpha = 1.0f; 
    // Then fades it away after 2 seconds (the cross-fade animation will take 0.5s) 
    [UIView animateWithDuration:0.5 delay:2.0 options:0 animations:^{ 
     // Animate the alpha value of your imageView from 1.0 to 0.0 here 
     imageView.alpha = 0.0f; 
    } completion:^(BOOL finished) { 
     // Once the animation is completed and the alpha has gone to 0.0, hide the view for good 
     imageView.hidden = YES; 
    }]; 
} 

So einfach ist das !

+0

Vielen Dank dafür! –

+0

Danke das hilft mir aus. – Shivaay

+0

http://StackOverflow.com/a/29080894/1442541 – evya

0

Ja, da ist. Werfen Sie einen Blick auf UIView blockbasierte Animation here. Und google für ein Beispiel.

+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations 

Sie können auch eine timer

+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)seconds target:(id)target selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)repeats 
10

In Swift und XCode 6

self.overlay.hidden = false 
UIView.animateWithDuration(2, delay:5, options:UIViewAnimationOptions.TransitionFlipFromTop, animations: { 
    self.overlay.alpha = 0 
    }, completion: { finished in 
    self.overlay.hidden = true 
}) 

wo Overlay der Auslass für mein Bild ist.

2

Swift 3-Version von @AliSoftware ‚s Antwort

imageView.isHidden = false 
imageView.alpha = 1.0 

UIView.animate(withDuration: 0.5, delay: 2.0, options: [], animations: { 

      self.imageView.alpha = 0.0 

     }) { (finished: Bool) in 

      self.imageView.isHidden = true 
     } 
Verwandte Themen