2012-09-17 71 views
24

我正在使用我的iPhone遊戲中的通知系統,並希望圖像在屏幕上彈出並在2秒後自動淡出。2秒後顯示並淡入UIImageView

  1. 用戶點擊一個按鈕調用方法「popupImage」
  2. 在指定的點在屏幕上的圖像出現時,它並不需要在
  3. 褪色是之後的圖像淡出通過本身在屏幕上2秒鐘。

有沒有辦法做到這一點?提前致謝。

回答

53

使用UIView專用方法。

想象一下,你已經準備好了你的UIImageView,已經創建並添加到主視圖,但只是隱藏。您的方法只需要使其可見,並啓動動畫2秒後(在此期間一個0.5秒的動畫)褪色出來,通過動畫它的「阿爾法」屬性從1.0到0.0:

-(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; 
    }]; 
} 

這麼簡單!

+0

感謝您給我們! –

+0

謝謝,這可以幫助我。 – Shivaay

+0

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

0

是的。看看UIView基於塊的動畫here。和谷歌爲例。

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

您也可以啓動一個timer

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

在夫特和6的XCode

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

其中覆蓋是用於我的圖像的出口。

2

斯威夫特3版@AliSoftware的回答

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 
     }