如何以不同的角度旋转图像?

时间:2009-09-12 09:59:34

标签: iphone

我已经实施了车速表,我有一个箭头图像。我想非常顺利地旋转0到180.可能吗?

2 个答案:

答案 0 :(得分:1)

'速度计'是否意味着加速度计?

使用UIAccelerometer获取加速度计数据。然后用过滤器获取实际的运动数据。然后将它们转换为角度。这三个步骤可以在UIAccelerometer的官方示例中找到。

使用CGAffineTransform旋转图像视图。我认为这并不难。但我不知道这个。

答案 1 :(得分:0)

我刚刚写了一个显示速度计的iPhone应用程序。这是动画针图像动作的代码:

CABasicAnimation *rotateAnimation = [CABasicAnimation animation];
rotateAnimation.keyPath = @"transform.rotation.z";
rotateAnimation.fromValue = [NSNumber numberWithFloat:DegreesToRadians( self.needleAngle )];
rotateAnimation.toValue = [NSNumber numberWithFloat:DegreesToRadians( newNeedleAngle )];
rotateAnimation.duration = 1.5;
rotateAnimation.removedOnCompletion = NO;
// leaves presentation layer in final state; preventing snap-back to original state
//
rotateAnimation.fillMode = kCAFillModeBoth; 
rotateAnimation.repeatCount = 0;
rotateAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
// Add the animation to the selection layer. This causes it to begin animating. 
//
[self.needleIV.layer addAnimation:rotateAnimation forKey:@"rotateAnimation"];

“removeOnCompletion = NO”对于指针在动画完成后不会回弹到其起始位置非常重要。