2秒后显示和淡化UIImageView

时间:2012-09-17 21:35:43

标签: ios xcode animation uiimage fadeout

我正在开发iPhone游戏中的通知系统,并希望屏幕上弹出一个图像,并在2秒后自动淡出。

  1. 用户单击调用方法“popupImage”
  2. 的按钮
  3. 图像出现在指定位置的屏幕上,无需淡入
  4. 图像在屏幕上显示2秒钟后,图像会自动淡出。
  5. 有没有办法做到这一点?提前谢谢。

4 个答案:

答案 0 :(得分:55)

使用UIView专用方法。

因此,假设您已经准备好了UIImageView,已经创建并添加到主视图中,但只是隐藏了。你的方法只需要让它可见,并在2秒后开始动画淡出它,通过将其“alpha”属性设置为1.0到0.0(在0.5s动画期间):

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

这很简单!

答案 1 :(得分:12)

在Swift和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
})

其中叠加层是我图像的出口。

答案 2 :(得分:3)

Swift 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
        }

答案 3 :(得分: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