我在NSTimer选择器中获得了以下代码:
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:2.0];
[infoLbl setAlpha:0];
[UIView commitAnimations];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:2.0];
[infoLbl setAlpha:1];
[UIView commitAnimations];
所以我想在UILabel(infoLbl)上实现一个简单的淡入/淡出循环。
好吧,有了这段代码,我只得到了淡入淡出的步骤,因为UILabel突然消失,然后淡入。
有什么建议吗?
感谢。
答案 0 :(得分:10)
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
[UIView setAnimationDuration:2.0];
[infoLbl setAlpha:0];
[UIView commitAnimations];
//This delegate is called after the completion of Animation.
-(void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:2.0];
[infoLbl setAlpha:1];
[UIView commitAnimations];
}
如果你使用的是NStimer Selecor,那么你不尝试改变uilabel文字的颜色吗?像:
-(void)timerSelector
{
if([textLabel textColor] == [UIColor blackColor])
{
[textLabel setTextColor:[UIColor grayColor]];
}
else
{
[textLabel setTextColor:[UIColor blackColor]];
}
}
上面的方法可以让你很容易地在循环中淡入/淡出。
答案 1 :(得分:0)
首先淡入,设置animationDidStopSelector:
并在选择器内部(有关详细信息,请参阅文档),告诉它淡出。