由于这个问题,我在这里撞墙:
当我创建UIImageView时,此视图具有特定的方向和大小。让我们称之为“A”状态。
这个视图响应了水龙头。它可以在屏幕上拖动。
在代码中的某个时刻,我将CGAffineTransform应用于视图。如果仿射是规模,旋转,翻译或所有的组合,则无关紧要。如果变换是绝对的或相对的也无关紧要。更不用说设备可以改变它的方向,并且视图被自动旋转到正确的方向(我们可以认为cay是一种应用于视图的旋转或变换)。
问题是:当我触摸该对象或尝试设置其透明度或任何其他参数的动画时,它“记住”状态“A”并从该状态执行所有动画,而不是从当前状态执行。如果我只是触摸视图,它会立即返回状态“A”。代码本身并没有这样做。这很烦人。如何创建视图假设其当前的转换状态为重置或初始状态?换句话说,如何让视图忘记过去的转换或状态?
我知道的唯一方法是重新创建视图,但这是一种荒谬的方式。
有没有办法像我描述的那样完成这项工作?
谢谢
答案 0 :(得分:2)
Afaik,所有SDK动画都会自动创建副本,在隐藏原件的同时在副本上执行动画。在你的代码中,你将有一个getState
行来启动它并创建指向动画对象的指针。要在动画例程结束时使其永久化,请将原始对象视图设置为动画视图。
Iirc就像这样,但我没有在我面前的代码示例:
myOriginalObject.view = myMnimationObject.view
显然,在发布动画之前,但在完成变换之后,请执行此操作。