使用时间和动画从字符串数组中更改UILabel / UIButton文本

时间:2014-09-30 20:37:09

标签: ios uibutton uilabel

获取UILabelUIButton元素并在某个设定的时间范围内更改文本的最佳方法是什么,比如3秒,带有淡入淡出的字符串数组的内容动画?

1 个答案:

答案 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;