画像を表示する小さな iOS5 アプリがあります。画像をクリックしてその情報を表示します。数秒後に情報が消えてほしい。これを行う良い方法はありますか?
私はいつでも別のボタンアクションを実装できますが、これはもっときれいです..
ありがとう!
またはのいずれ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];
}];
}