4

画像を表示する小さな iOS5 アプリがあります。画像をクリックしてその情報を表示します。数秒後に情報が消えてほしい。これを行う良い方法はありますか?

私はいつでも別のボタンアクションを実装できますが、これはもっときれいです..

ありがとう!

4

1 に答える 1

19

またはのいずれNSTimerかを使用しますperformSelector:withObject:afterDelay。どちらの方法でも、実際にフェードアウトを行う別のメソッドを呼び出す必要がありますが、これはかなり簡単です。

例:

NSTimer

[NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(fadeOutLabels:) userInfo:nil repeats:NO];

performSelector:withObject:afterDelay:

/* starts the animation after 3 seconds */
[self performSelector:@selector(fadeOutLabels) withObject:nil afterDelay:3.0f];

そして、メソッドを呼び出しfadeOutLabels ます(または呼び出したいものは何でも)

-(void)fadeOutLabels
{
    [UIView animateWithDuration:1.0 
                          delay:0.0  /* do not add a delay because we will use performSelector. */
                        options:UIViewAnimationCurveEaseInOut 
                     animations:^ {
                         myLabel1.alpha = 0.0;
                         myLabel2.alpha = 0.0;
                     } 
                     completion:^(BOOL finished) {
                         [myLabel1 removeFromSuperview];
                         [myLabel2 removeFromSuperview];
                     }];
}

または、アニメーション ブロックを使用してすべての作業を行うことができます。

-(void)fadeOutLabels
{
    [UIView animateWithDuration:1.0 
                          delay:3.0  /* starts the animation after 3 seconds */
                        options:UIViewAnimationCurveEaseInOut 
                     animations:^ {
                         myLabel1.alpha = 0.0;
                         myLabel2.alpha = 0.0;
                     } 
                     completion:^(BOOL finished) {
                         [myLabel1 removeFromSuperview];
                         [myLabel2 removeFromSuperview];
                     }];
}
于 2012-04-10T21:59:31.320 に答える