web-dev-qa-db-ja.com

2秒後にUIImageViewを表示およびフェードします

私はiPhoneゲームの通知システムに取り組んでおり、画面に画像がポップアップ表示され、2秒後に自動的にフェードするようにします。

  1. ユーザーが「popupImage」メソッドを呼び出すボタンをクリックする
  2. 画面上の指定された場所に画像が表示され、フェードインする必要はありません
  3. 画面に2秒間表示された後、画像は自動的にフェードアウトします。

これを行う方法はありますか?事前に感謝します。

27
felix_xiao

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

そのような単純な!

55
AliSoftware

In 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
})

ここで、overlayは画像のアウトレットです。

12
Joseph Selvaraj

@ AliSoftwareの答えのSwift 3バージョン

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
iUser

はいあります。 UIViewブロックベースのアニメーション ここ を見てください。そして、例のためにグーグル。

+ (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
0
ohr