【发布时间】:2014-08-12 05:37:19
【问题描述】:
我在UIViewController 中有这个方法来显示一条消息三秒钟然后淡出。 mainMessageLabel 是在接口文件中声明的UILabel。
- (void) showTempMessage: (NSString*) message
{
_mainMessageLabel.text = message;
_mainMessageLabel.alpha = 1;
[UIView animateWithDuration: 1
delay: 3
options: 0
animations: ^{
_mainMessageLabel.alpha = 0;
}
completion: ^(BOOL finished) {
_mainMessageLabel.text = @"";
_mainMessageLabel.alpha = 1;
}];
}
如果我在上一次调用后至少四秒钟调用该方法,则该方法可以正常工作,但如果我更早调用它,当前一个实例仍在动画时,标签会消失,我必须再等四秒钟才能调用它再次开始工作。每次调用这个方法时,我希望它停止之前的动画并显示新消息三秒钟并淡出。
我在这里尝试了其他问题的答案,例如将UIViewAnimationOptionBeginFromCurrentState添加到options:,甚至将[_mainMessageLabel.layer removeAllAnimations]添加到我的函数顶部,但没有任何效果。你有什么建议吗?
【问题讨论】:
标签: ios objective-c uiview core-animation