我正在使用此代码进行旋转动画:
CABasicAnimation *spinAnimation = [CABasicAnimation
animationWithKeyPath:@"transform.rotation.z"];
spinAnimation.fromValue =[NSNumber numberWithFloat:0];
spinAnimation.toValue = [NSNumber numberWithFloat:3.30];
spinAnimation.duration =2;
[imgArrow.layer addAnimation:spinAnimation forKey:@"spinAnimation"];
在此代码中,imageview的底点不固定。我想设置图像,使其从图像底部的固定点旋转(如速度计)。
你能帮我解决这个问题吗?
答案 0 :(得分:1)
尝试这样的事情:
NSString *path = [[NSBundle mainBundle] pathForResource:@"arrow" ofType:@"png"];
UIImage *img = [UIImage imageWithContentsOfFile:path];
CGImageRef image = img.CGImage;
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CGContextTranslateCTM(context, 365.0, 305);
CGContextRotateCTM(context, angle);
touchRect = CGRectMake(-10.0, -5.0, img.size.width, img.size.height); // (-10.0, -5.0) - arrow's rotation center
CGContextDrawImage(context, touchRect, image);
CGContextRestoreGState(context);
答案 1 :(得分:1)
这个问题现在已经很老了,但答案与锚点有关。您只需将图像视图的锚点设置为底部中心即可。这是一个显示不同锚点的指南。
因此,您可以将图层的锚点设置为0.5,1.0,如下所示:
[[imgArrow layer] setAnchorPoint:CGPointMake(0.5, 1.0)];
答案 2 :(得分:0)
要从定位点旋转箭头,请使用以下代码:
text()