获取UILabel
或UIButton
元素并在某个设定的时间范围内更改文本的最佳方法是什么,比如3秒,带有淡入淡出的字符串数组的内容动画?
答案 0 :(得分: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秒内淡化文本标签(通过将alpha设置为0),然后将文本设置为newString并将标签淡入。</ p>
或者,让文本从一个值淡出到另一个值:
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;