这个问题已经困扰我好几天了,我似乎找不到任何解决办法。我的项目只是一个圆圈,上面有一些文字,所以当我按下按钮时,它会变得足够大,这样文本就可以很容易地阅读。然而,文本是以圆形的方式分布的,所以我首先需要旋转圆圈,然后当其中一个文本就在我面前的时候,我按下按钮来调整圆圈的大小,但是它不是从旋转后的最后一个位置开始增长,而是被重置到它的初始位置。我如何处理这个问题呢?谢谢。
引起此问题的代码如下:
UIView入门动画:零上下文:NULL;
UIView集动画制作:2.5;
circle.transform = CGAffineTransformMakeScale(5,5);
[UIView setAnimationRepeatAutoreverses:NO];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
circle.alpha = 1.0;
[UIView commitAnimations];
发布于 2013-10-29 01:14:21
这与在核心动画对象中表示的不同树有关。来自这里
一个使用核心动画的应用程序有三组图层对象。在使应用程序的内容出现在屏幕上时,每一组层对象都有不同的角色:
这对您来说意味着,一旦动画完成,您需要确保表示层(动画的主题)中的更改反映在模型层中。这通常可以通过禁用动画和设置最终属性值来实现。
发布于 2013-10-29 18:34:33
找到答案了,现在我知道为什么图像位置每次都会被重置。这是因为CGAffineTransformMakeScale用原来的位置覆盖了当前的位置,所以我使用了CGAffineTransformScale,并为我解决了这个问题。
下面是对我有用的代码:
[UIView动画:2.5延迟:0选项:UIView动画选择曲线线性动画:^{image.transform= CGAffineTransformScale(image.transform,5,5);}
completion:^(BOOL finished) {
}];
我希望这对别人有帮助,就像它帮助了我一样!
再次感谢你的回答,是哪一种帮助我寻找正确的答案;)
https://stackoverflow.com/questions/19653819
复制