我使用下面的代码来放大图像,然后将其恢复为原始大小:
float width = image.image.size.width;
float newWidth = width * 1.05;
float height = image.image.size.height;
float newHeight = height * 1.05;
[NSAnimationContext beginGrouping];
[[NSAnimationContext currentContext] setDuration:.7f];
NSAnimationContext.currentContext.completionHandler = ^{
[NSAnimationContext beginGrouping];
[[NSAnimationContext currentContext] setDuration:.7f];
[[image animator] setFrameSize:NSMakeSize(width, height)];
[NSAnimationContext endGrouping];
};
[[image animator] setFrameSize:NSMakeSize(newWidth, newHeight)];
[NSAnimationContext endGrouping];问题是,在动画过程中,图像会稍微向上和向右移动,而不是停留在原地。
如何在动画过程中保持图像的位置?
谢谢。
发布于 2013-03-31 10:51:59
这是因为你使用的方法,-setFrameSize:,不会改变视图的原点(在Mac上是左下角),所以视图从字面上向右增长。将-setFrame:与动画器代理一起使用,或者将视图层上的变换与CABasicAnimation结合使用,以将动画线性应用于视图的坐标。
https://stackoverflow.com/questions/15725757
复制相似问题