2

我已经使用以下方法完成了在指南针中旋转针的编码:

NeedleView.transform=CGAffineTransformMakeRotation(theHeading); 

但旋转并不顺畅。它正在粗略地移动。

谁能告诉我如何使罗盘针相对于角运动平滑旋转?

4

3 回答 3

3

您可以使用陀螺仪补偿指南针的跳动。我使用该方法完成了一个项目,您可以在此处看到:http: //www.sundh.com/blog/2011/09/stabalize-compass-of-iphone-with-gyroscope/

于 2011-09-19T15:14:28.227 回答
1

尝试这个。对我来说效果很好。

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading {
self.lblGrados.text = [NSString stringWithFormat:@"%.0f°", newHeading.magneticHeading];

[UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{

needle.transform = CGAffineTransformMakeRotation((degrees-newHeading.trueHeading) * M_PI / 180);
    } completion:nil];


}
于 2015-02-07T11:21:54.247 回答
0

用变换做一个动画,不要只是设置它。如果你设置它,它会立即改变旋转。动画会减慢它。您可以选择动画发生的持续时间以减慢它的速度。查看动画 API 的 UIView 文档。

于 2011-05-09T16:59:56.547 回答