【问题标题】:Changing the text of a UILabel when its superview is being animated在为其超级视图设置动画时更改 UILabel 的文本
【发布时间】:2026-01-06 19:45:01
【问题描述】:

如果 UILabel 的父视图由 UIView 动画进行动画处理,是否可以更改 UILabel 的文本?

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

编辑:我的错 - 这行得通。问题在于我的文本更新例程(转换问题)。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 我担心可能是这种情况。我所追求的是一个分数的显示,当它沿着分数条移动时会增加。
    • 我的错(见上面的编辑),我原本打算的工作,我只是愚蠢。无论如何,感谢您的深入回答。
    最近更新 更多