2

我在 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 突然消失,然后淡入。

有什么建议吗?

谢谢。

4

2 回答 2

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];

}

Insetad,如果您使用的是 NStimer Selecor,那么您不尝试更改 uilabel 文本的颜色吗?像:

-(void)timerSelector
{
    if([textLabel textColor] == [UIColor blackColor])
    {
        [textLabel setTextColor:[UIColor grayColor]];   
    }
    else
    {
        [textLabel setTextColor:[UIColor blackColor]];  
    }
}

上述方法将使您能够很容易地在循环中淡入/淡出。

于 2010-04-07T10:04:59.843 回答
0

首先淡入,在选择器内设置一个animationDidStopSelector:and (更多信息参见文档),告诉它淡出。

于 2010-04-07T09:49:58.653 回答