2014-09-30 75 views

回答

1

使用NSTimer安排文本更改。例如,如果您的方法名为changeText,则可以使用[NSTimer scheduledTimerWithTimeInterval:3.0 target:self select:@selector(changeText) userInfo:nil repeats:YES];启动计时器,其中3.0是以秒为单位的时间间隔。

至于动画,你有两个选择。您可以让文本淡出然后淡入,或者可以让文本从一个字符串淡入到下一个字符串。要做到前者(在随后淡入淡出),使用这样的:

[UIView animateWithDuration:0.5 animations:^{ 
    textLabel.alpha = 0.0f; 
} completion:^(BOOL finished) { 
    textLabel.text = newString; 
    [UIView animateWithDuration:0.5 animations:^{ 
     textLabel.alpha = 1.0f; 
    }]; 
}]; 

这种淡出在0.5秒的文本标签(通过设置阿尔法为0),然后设置文本newString和消失的标签早在

另外,有文字褪色从一个值到另一个:

CATransition *animation = [CATransition animation]; 
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
animation.type = kCATransitionFade; 
animation.duration = 1.00; 
[textLabel.layer addAnimation:animation forKey:@"kCATransitionFade"]; 
textLabel.text = newString; 
+0

谢谢你的答案。 – Diamond 2014-09-30 23:24:15

+0

@Diamond代码进入定时器执行的函数。在我的例子中,它将被称为'changeText',所以你会声明一个像' - (void)changeText {...}'方法' – ttarik 2014-09-30 23:55:10

+0

对不起,我的意思是只有动画代码应该被添加到'changeText'方法。加载视图时应该启动计时器('viewDidLoad')。我的代码也不包括从你的数组中选择文本字符串 - 这也应该在'changeText'中。不过,我会指出,StackOverflow不是要求人们为您编写代码块的地方。如果您不确定Objective-C和iOS SDK基础知识,可以查看一些初学者教程。关于定时器,动画/淡入淡出的文本和随机字符串有很多信息 - 在SO和其他地方。 – ttarik 2014-10-01 01:07:44

相关问题