我有一个显示用户分数的UILabel。并且分数会不时变化,是否有办法让这个变化动起来,以便将这个数字从当前值慢慢增加到结果值? 类似于http://josheinstein.com/blog/index.php/2010/02/silverlight-animated-turbotax-number-display/,但是用于objective-c。UILabel动画数字变化
回答
使用CADisplayLink可以在一段时间内更改UILabel的自定义子类的文本属性。你可能会想要使用NSNumberFormatter
来获得更漂亮的输出。
// Create instance variables/properties for: `from`, `to`, and `startTime` (also include the QuartzCore framework in your project)
- (void)animateFrom:(NSNumber *)aFrom toNumber:(NSNumber *)aTo {
self.from = aFrom; // or from = [aFrom retain] if your not using @properties
self.to = aTo; // ditto
self.text = [from stringValue];
CADisplayLink *link = [CADisplayLink displayLinkWithTarget:self selector:@selector(animateNumber:)];
startTime = CACurrentMediaTime();
[link addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
}
- (void)animateNumber:(CADisplayLink *)link {
static float DURATION = 1.0;
float dt = ([link timestamp] - startTime)/DURATION;
if (dt >= 1.0) {
self.text = [to stringValue];
[link removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
return;
}
float current = ([to floatValue] - [from floatValue]) * dt + [from floatValue];
self.text = [NSString stringWithFormat:@"%i", (long)current];
}
请注意,如果您确实使用了“NSNumberFormatter”,请创建其中一个并将其重用于使用相同格式的每个格式化作业。创建一个新的'NSNumberFormatter'非常昂贵,但重新使用现有的便宜。 –
我一直在获取EXC_BAD_ACESS的 'float current =([to floatValue] - [from floatValue])* dt + [from floatValue]'; – Drabuna
你是否使用'from'和'to'变量的属性?它是否设置为“保留”?如果你不使用属性,那么''from = [aFrom retain]' –
AUIAnimatedText
有你所要求的。这是UILabel的替代方案,具有覆盖文字动画的可能性,
- 1. 动画的UILabel与数字
- 2. UILabel动画文字
- 3. 当文字变化时动画UILabel背景颜色
- 4. UILabel动画更改字体
- 5. 更改UILabel文字动画?
- 6. IOS的UILabel落实的UILabel大小变化的动态字体大小变化
- 7. 动画UILabel中的数字更改
- 8. 动画文字变化
- 9. iPhone UILabel动画
- 10. 动画更改UILabel行数
- 11. 数据变化与动画
- 12. UICollectionView动画数据变化
- 13. 如何改变的UILabel文本时,动画化的UIImageView
- 14. 当父母UIView动画时,UILabel大小突然变化
- 15. iOS在数字变化时防止计时器UILabel'抖动'
- 16. 动画增量UILabel
- 17. UILabel左右动画
- 18. 显示UILabel动画
- 19. 动画脉冲UILabel?
- 20. setcontetview变化动画
- 21. UINavigationController动画变化
- 22. iOS - 在UILabel或UITextView中动画改变文字大小?
- 23. 动画BEFORE活动变化
- 24. UILabel的动画帧顺利
- 25. 更新UILabel文本动画
- 26. 动画UILabel尺寸减少
- 27. 更改UILabel颜色动画
- 28. 如何动画UILabel的textColor?
- 29. 动画UILabel不光滑
- 30. 在UITableViewCell中动画UILabel
我发现可能有助于回答 http://stackoverflow.com/questions/3073520/setting-new-text-to-uilabel-and-animation **首先看* * – wczekalski
是的,我看到了,不是我想要的动画。 – Drabuna