iPhone上的动画“抓取文字”

时间:2009-12-04 15:48:29

标签: iphone objective-c text animation

有没有人知道如何创建一个“文本抓取”,就像在iPad的ESPN ScoreCenter应用程序底部显示的那样?

基本上,屏幕底部有一小段文字,文字会动画,以便在屏幕上从右向左缓慢移动。

alt text

有人能指出一些类似的源代码吗?它只是一个UIWebView吗?

我试图谷歌这个,但无济于事。

感谢任何能指出正确方向的人!

2 个答案:

答案 0 :(得分:4)

您是否查看过文档中的动画?这可以通过多种方式解决。如果您将其创建为UILabel,则只需使用类似于以下内容的动画(CoreAnimation)移动它:

_label.frame = ???   // set it to the origin (right edge) 

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:6.0];   // 6 seconds, adjust
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

_label.frame = ???  // set it to the destination (left edge)

[UIView commitAnimations];

答案 1 :(得分:3)

我建议创建一个UIView子类。在你的init方法中,设置self.clipsToBounds = YES并添加两个UILabel,两个都有相同的文本(无论你想滚动什么)。这两个是这样你可以无缝地动画它们 - 将一个立即放在另一个的右边,这样当它们滚动时,它看起来就像消息重复一样。标签一直向左滚动,将其移动到另一个标签的右侧。这将为您提供无缝滚动的幻觉。

然后你可以使用[UIView beginAnimations:]等来设置动画,[UIView setAnimationDelegate:self]; [UIView setAnimationDidStopSelector:@selector(animationDone)]接收动画结束的消息(以便您可以移动视图)。只需确保创建引用的方法。

你也可以使用UILabel的NSArray来显示多个不同的消息,而不会增加很多复杂性。