使用CGAffine在弧上移动UIImageView

时间:2010-09-28 20:41:34

标签: iphone animation

我了解CGAffineTransformMakeRotation可以旋转图片,CGAffineTransformMakeTranslation可以翻译图片。我也理解CGAffineTransformConcat可以合并两个转换。但是,我似乎无法找到使用这两种方法在弧上移动图像的方法。我知道这更像是一个数学问题,但是有没有人可以指出我的参考?

编辑:

 [bezierPathWithArcCenter:radius:startAngle:endAngle:clockwise:]

做了这个伎俩。

参考:http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIBezierPath_class/Reference/Reference.html#//apple_ref/occ/clm/UIBezierPath/bezierPathWithArcCenter:radius:startAngle:endAngle:clockwise

2 个答案:

答案 0 :(得分:2)

使用路径设置的CAKeyframeAnimation而不是离散值。

CAKeyframeAnimation *a = [CAKeyframeAnimation animationWithKeyPath:@"position"];
CGRect circleRect = CGRectMake(0,0,50,50);
a.duration = 2.0;
a.rotationMode = kCAAnimationRotateAuto;
a.path = [UIBezierPath bezierPathWithOvalInRect:circleRect].CGPath;
[imageView.layer addAnimation:a forKey:@"moveCircle"];

答案 1 :(得分:1)

围绕与圆弧对应的圆心旋转。

这将涉及三个步骤:

1)平移以使弧的中心移动到原点 2)旋转适当的角度 3)从第1步开始翻译。