生活随笔
收集整理的這篇文章主要介紹了
iOS 重力感应之箭头指向重力方向
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
關(guān)于CoreMotion的blog有很多,也有講特別詳細(xì)的,這里就示范一個特別有用的CoreMotion的簡單用法:重力方向的感應(yīng),一分鐘get方法
它看起來是這樣的:
這是在手機(jī)上運行的,隨著手機(jī)屏幕方向的不斷變化,箭頭始終指向地心引力的方向。嗯,就是這樣。
首先導(dǎo)入相關(guān)頭文件:?#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 // 檢查傳感器到底在設(shè)備上是否可用}motionManager.accelerometerUpdateInterval = 0.01; // 告訴manager,更新頻率是100Hz/* 加速度傳感器開始采樣,每次采樣結(jié)果在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
代碼地址在這里:代碼
總結(jié)
以上是生活随笔為你收集整理的iOS 重力感应之箭头指向重力方向的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。