0
如何使用UILabel
或UIButton
元素以及在某个设定的时间范围内更改文本的最佳方法是什么?比如3秒钟的内容具有淡出动画的字符串数组集合?使用时间和动画从字符串数组中更改UILabel/UIButton文本
如何使用UILabel
或UIButton
元素以及在某个设定的时间范围内更改文本的最佳方法是什么?比如3秒钟的内容具有淡出动画的字符串数组集合?使用时间和动画从字符串数组中更改UILabel/UIButton文本
使用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;
谢谢你的答案。 – Diamond 2014-09-30 23:24:15
@Diamond代码进入定时器执行的函数。在我的例子中,它将被称为'changeText',所以你会声明一个像' - (void)changeText {...}'方法' – ttarik 2014-09-30 23:55:10
对不起,我的意思是只有动画代码应该被添加到'changeText'方法。加载视图时应该启动计时器('viewDidLoad')。我的代码也不包括从你的数组中选择文本字符串 - 这也应该在'changeText'中。不过,我会指出,StackOverflow不是要求人们为您编写代码块的地方。如果您不确定Objective-C和iOS SDK基础知识,可以查看一些初学者教程。关于定时器,动画/淡入淡出的文本和随机字符串有很多信息 - 在SO和其他地方。 – ttarik 2014-10-01 01:07:44