如何旋转针(声级计)的原点?

时间:2010-11-19 15:46:09

标签: iphone iphone-sdk-3.0 ios4

嗨,这是我到目前为止的情况。我已经将UIImageView添加到Interface Builder并将其设置为针的.png图像(Needle.png),我还将它连接到Xcode中相应的IBOutlet。

在我的viewDidLoad:方法中我设置了锚点

- (void)viewDidLoad {
    [super viewDidLoad];

    [needle.layer  setAnchorPoint:CGPointMake( 0.5, 1 )];
}

我还在Interface Builder中创建了一个按钮,并将其连接到Xcode中的IBAction,此按钮执行动画块,

- (IBAction)animate {

 [UIView beginAnimations:@"rotate" context:nil];
 [UIView setAnimationDuration:1.0];
 self.needle.transform = CGAffineTransformMakeRotation(10 * M_PI / 180);
 [UIView commitAnimations];

}

所以当我按下动画按钮时,我的针图像逆时针旋转10°,这就是一个开始。但我真正想做的是让针根据不断变化的值不断旋转到正确的角度。

例如,如果我有一个分贝值给出了房间中的当前分贝水平,我希望该针反映该值(即10°== 10dB),并且因为这个值不断变化我'我希望我的针顺时针或逆时针旋转。

有谁知道我怎么能这样做?如果有人可以发布一些源代码来帮助我,我也很感激。

1 个答案:

答案 0 :(得分:3)

  

但是我真的想要做到这一点   让针不断旋转   本身以正确的角度为基础   不断变化的价值。

当“不断变化的值”发生变化时,更改旋转值。

这个价值变化的刺激是什么?放置代码以更改那里的旋转。

如果值是KVO - 您可以使用该机制在KVO更改时更改旋转。

此外 - 听起来您可能想要在动画块中进行更改,以使针的移动更加流畅。比如说,值只会每秒更改一次 - 在动画块中进行更改,使其在一秒钟内发生变化。它们的针头运动将不那么“生涩”。

预先警告,如果你正在做动画,请设置setAnimationBeginsFromCurrentState - 所以如果你在现有动画的中途改变值(并重新制作动画),它将“做正确的事情”。