在对其超级视图进行动画处理时更改UILabel的文本

时间:2010-02-22 17:47:18

标签: iphone cocoa-touch core-animation uilabel calayer

是否有可能改变UILabel whist的文本,其超级视图正在被UIView动画制作动画?

假设我将labelView作为containerView的子视图。在containerView被动画期间(从未在之前或之后)调用timerFired。我在动画期间调用labelView的setText,但它的文本没有改变。有没有办法实现我的目标?

编辑:我的错 - 这很有效。问题在于我的文本更新例程(转换问题)。

1 个答案:

答案 0 :(得分:1)

您的问题是动画的工作原理。核心动画有效地获取初始状态的快照和结束状态的快照,并在它们之间进行插值。这是非常高效的,但不容易让你在动画中间混淆不可动画的属性(如text)。解决此问题的方法有很多种,但最简单的方法是创建两个标签,将它们组合在一起,并为opacityhidden设置动画。这通常会给你一个交叉淡入淡出的外观,我认为这是你想要的。当然,通过管理自己的CALayers,还有很多方法可以实现这一目标,但两个UILabel解决方案是最简单的。