【问题标题】:Animating UIView frame movement in animationDidStop在animationDidStop中动画UIView帧移动
【发布时间】:2025-11-23 12:50:01
【问题描述】:

我有一个 UIView 动画它的框架的运动。但是,现在,我想更改 alpha 值,使其在移动时淡出...... alpha 需要在动画结束时变回。我的第一个想法是使用 animationDidStop 选择器,但是,这个 View 只在动画块所在的范围内......即在 Stop 选择器中,它失败了。

我不能使用实例变量,因为我为多个视图执行此操作,并且每个视图都有 ivars 很麻烦。

我的问题是你能将一个对象传递给一个停止选择器并控制该对象的动画吗?

我只想更改 alpha,因为在渲染新帧时会有一些延迟。

【问题讨论】:

    标签: iphone objective-c animation uiview ios4


    【解决方案1】:

    文档建议您的选择器应采用以下形式

     (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context
    

    因此,当您设置 animationDidStopSelector 时,我会将视图传递为 context,以便您可以更改它。 上下文在 beginAnimations 调用中设置。因此,将上下文设置为您要设置动画的视图,然后就开始吧..

    【讨论】: