900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > iOS 重力感应之箭头指向重力方向

iOS 重力感应之箭头指向重力方向

时间:2024-04-06 20:06:08

相关推荐

iOS 重力感应之箭头指向重力方向

关于CoreMotion的blog有很多,也有讲特别详细的,这里就示范一个特别有用的CoreMotion的简单用法:重力方向的感应,一分钟get方法

它看起来是这样的:

这是在手机上运行的,随着手机屏幕方向的不断变化,箭头始终指向地心引力的方向。嗯,就是这样。

首先导入相关头文件:#import <CoreMotion/CoreMotion.h>

arrowImageView 是屏幕中间的那个显示箭头的imageView

@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.CMMotionManager *motionManager = [[CMMotionManager alloc]init];if (!motionManager.accelerometerAvailable) {// fail code // 检查传感器到底在设备上是否可用}motionManager.accelerometerUpdateInterval = 0.01; // 告诉manager,更新频率是100Hz/* 加速度传感器开始采样,每次采样结果在block中处理 */// 开始更新,后台线程开始运行。[motionManager startAccelerometerUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMAccelerometerData *accelerometerData, NSError *error){CMAccelerometerData *newestAccel = motionManager.accelerometerData;double accelerationX = newestAccel.acceleration.x;double accelerationY = newestAccel.acceleration.y;double ra = atan2(-accelerationY, accelerationX); // 返回值的单位为弧度double degree = ra * 180 / M_PI;NSLog(@"----- %f ----", degree);self.arrowImageView.transform = CGAffineTransformMakeRotation(ra + M_PI_2);}];}@end

代码地址在这里:代码

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。