我正在我的 iPhone 游戏中开发一个通知系统,并希望在屏幕上弹出一个图像并在 2 秒后自动淡出。
- 用户单击调用方法“popupImage”的按钮
- 图像出现在屏幕上的指定位置,不需要淡入
- 图像在屏幕上停留 2 秒后自行淡出。
有没有办法做到这一点?提前谢谢。
为此使用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;
}];
}
就那么简单!
斯威夫特 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
我的形象的出路在哪里。
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
}
就在这里。在这里查看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