我有一个显示图像的iOS5小应用程序。我点击图片显示其信息。我希望这些信息在几秒钟后消失。有没有一个很好的方法来做到这一点?
我总是可以实现另一个按钮动作,但这样会更整洁..
谢谢!
答案 0 :(得分: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];
}];
}