27

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

  1. 用户单击调用方法“popupImage”的按钮
  2. 图像出现在屏幕上的指定位置,不需要淡入
  3. 图像在屏幕上停留 2 秒后自行淡出。

有没有办法做到这一点?提前谢谢。

4

4 回答 4

57

为此使用UIView专用方法。

所以想象一下你已经UIImageView准备好了,已经创建并添加到主视图中,但只是隐藏了。您的方法只需使其可见,并在 2 秒后启动动画以将其淡出,方法是将其“alpha”属性从 1.0 设置为 0.0(在 0.5 秒动画期间):

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

就那么简单!

于 2012-09-17T22:06:50.300 回答
12

斯威夫特 2

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

斯威夫特 3, 4, 5

self.overlay.isHidden = false
UIView.animate(withDuration: 2, delay: 5, options: UIView.AnimationOptions.transitionFlipFromTop, animations: {
    self.overlay.alpha = 0
}, completion: { finished in
    self.overlay.isHidden = true
})

overlay我的形象的出路在哪里。

于 2015-02-25T17:20:04.747 回答
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
        }
于 2017-09-11T18:32:48.233 回答
0

就在这里。在这里查看UIView基于块的动画。并以谷歌为例。

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

您也可以启动计时器

+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)seconds target:(id)target selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)repeats
于 2012-09-17T21:46:02.633 回答