我也做了编码中使用旋转罗盘针:如何旋转罗盘针顺利
NeedleView.transform=CGAffineTransformMakeRotation(theHeading);
但转动不顺畅。它正在粗略地移动。
任何人都可以告诉我如何做一个平滑的旋转指南针针对角运动?
我也做了编码中使用旋转罗盘针:如何旋转罗盘针顺利
NeedleView.transform=CGAffineTransformMakeRotation(theHeading);
但转动不顺畅。它正在粗略地移动。
任何人都可以告诉我如何做一个平滑的旋转指南针针对角运动?
用变换做一个动画,不要设置它。如果你设置它,它会立即改变旋转。动画会减慢速度。您可以选择动画发生的持续时间来减慢播放速度。查看动画API的UIView文档。
您可以用陀螺仪补偿指南针的跳动。我已经完成了一个使用该方法的项目,您可以在此处看到:http://www.sundh.com/blog/2011/09/stabalize-compass-of-iphone-with-gyroscope/
试试这个。适合我。
- (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];
}