1. 程式人生 > >ios中加速器和重力感應器

ios中加速器和重力感應器

首先匯入CoreMotion框架,新建兩個label
#import

@interface ViewController : UIViewController{
   
    CMMotionManager *_manager;
    NSTimer *_timer;
}
//動作管理器指標
@property(nonatomic,retain)CMMotionManager *manager;
@property (retain, nonatomic) IBOutlet UILabel *accelerometerLabel;
@property (retain, nonatomic) IBOutlet UILabel *gyroscopeLabel;
@property(nonatomic,retain)NSTimer *timer;

@end
//
  self.manager = [[CMMotionManager alloc] init];
    //新增一個佇列執行緒
    NSOperationQueue *queue = [[NSOperationQueue alloc] init];
    //判斷是否可以加速
    if (_manager.accelerometerAvailable == YES) {
        //更新速度
        _manager.accelerometerUpdateInterval = 0.1;
        //block
        [_manager startAccelerometerUpdatesToQueue:queue withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
            NSString *acceleterString;
            if (error) {
                [_manager stopAccelerometerUpdates];
                acceleterString = [NSString stringWithFormat:@"acceletererror:%@",error];
            }else{
                //重力加速度三維分量
                acceleterString = [NSString stringWithFormat:@"%f\n,%f\n,%f\n",accelerometerData.acceleration.x,accelerometerData.acceleration.y,accelerometerData.acceleration.z];
                //跳轉到主執行緒
                [self.accelerometerLabel performSelectorOnMainThread:@selector(setText:) withObject:acceleterString waitUntilDone:NO];
            }
        }];
    }else{
        self.accelerometerLabel.text = @"裝置沒有加速器";
    }
    //重力感應
    if (_manager.gyroAvailable == YES) {
        _manager.gyroUpdateInterval = 1.0;
        [_manager startGyroUpdatesToQueue:queue withHandler:^(CMGyroData *gyroData, NSError *error) {
            NSString *gryString;
            if (error) {
    

相關推薦

ios加速器重力感應

首先匯入CoreMotion框架,新建兩個label #import @interface ViewController : UIViewController{         CMMotionManager *_manager;     NSTimer *_timer; } //動作管理器指標 @p

Python生成器叠代的功能介紹

family line 介紹 mil auto 叠代器 常用 方法 lean 生成器和叠代器的功能介紹 1. 生成器(generator) 1. 賦值生成器 1. 創建 方法:x = (varia

移動端二三事【四】:陀螺儀(重力感應)實現手機位置、加速度感應以及常見應用。

效果 防止 size tro 通過 select 代碼 陀螺儀 prime 首先說明一下:陀螺儀感應需在真機環境下進行調試,PC端無效果。 1.獲取感應器 需在window上監聽devicemotion事件,再通過事件對象獲取accelerationIncludingG

iOS棧的區別

IE http sdn 改變 執行 需要 獨立 clas 類方法 https://blog.csdn.net/wallacewang_/article/details/72594977 類方法 當不需要訪問實例變量或者不改變實例狀態時,可寫成類方法。 Objec

iospthread_mutexdispatch_semaphore效能對比

因為自旋鎖有風險已經別踢出局不再使用,所以對比了一下pthread提供的pthread_mutex_t以及dispatch_semaphore。 測試時候特別注意debug模式和release模式,結果可能會完全不一樣。 測試方法 模擬實際使用的執行緒搶佔,分別在不同執行緒迴圈很多次

microbit教程 兩塊microbit之間的無線傳輸複雜資料---重力感應遙控小車

一。問題描述                  用一塊microbit作為主控板,板載陀螺儀(重力感應器),可以用來前後旋轉,左右滾動,得到不同水平方向(X軸,Y軸)的資料。兩塊主機板之間通過2.4G方式通訊,另一

移動端二三事【五】:陀螺儀(重力感應)實現手機位置、加速度感應以及常見應用。

首先說明一下:陀螺儀感應需在真機環境下進行除錯,PC端無效果。 1.獲取感應器 需在window上監聽devicemotion事件,再通過事件物件獲取accelerationIncludingGravity(內建重力加速度感應器)物件。程式碼如下:

iOS KVCKVO的理解用途

KVC(Key-Value Coding) KVC,即是指 NSKeyValueCoding,一個非正式的 Protocol,提供一種機制來間接訪問物件的屬性。 一個物件擁有某些屬性。比如說,一個 Man 物件有一個 name 和一個 age 屬性。以 KVC 說法,這個Man&n

IOS UIViewUIViewController的區別

宣告:這篇文章不是原創,因為覺得寫的好,才複製過來保留 ------------------------------------------------------------------------------ UIViewController顧名思義:檢視控制器。應該

ios類別擴充套件的區別

分類的小括號中必須有名字 @interface 類名(分類名字) /*方法宣告*/ @end @implementation類名(分類名字) /*方法實現*/ @end 分類只能擴充方法,不能擴充套件屬性和成員變數(如果包含成員變數會直接報錯)。如果分類中聲明瞭一個屬性,那麼分類只會生成這個屬性的set、

iOSpropertysynthesize的詳細說明

我們要在一個類中定義屬性,首先是要在.h檔案中(或者說是在.m檔案中的@interface的作用域中)使用關鍵字property來進行屬性的宣告,同時,在xcode的4.5版本以前,如果我們想要直接用

MFCsetimerontimer定時函式到時間不能觸發執行是因為WM_TIMER訊息的優先順序低

MFC中setimer和ontimer定時器函式到時間不能觸發執行, 因為WM_TIMER訊息的優先順序低,所以會優先處理高級別其他訊息,如 WM_PAINT訊息重複觸發介面的重繪, WM_TIMER無處理的機會。訊息

Java TimerTimerTask 定時定時任務使用的例子

這兩個類使用起來非常方便,可以完成我們對定時器的絕大多數需求 Timer類是用來執行任務的類,它接受一個TimerTask做引數 Timer有兩種執行任務的模式,最常用的是schedule,它可以以兩種方式執行任務:1:在某個時間(Data),2:在某個固定的時間之後(i

iOSStoryboardclass內連線問題

今天早上上班的路上,微信收到同事發來的一個問題,是在操作一個按鈕的時候發現App卡死了,我第一反應就是程式肯定崩潰了。我突然想起前兩天寫的一個功能,這個功能在iPad和iPhone上不一樣,到公司一看果

iOS的三種定時使用方法

談到定時器,我查了一下資料,發現大概有三種實現方法,依次是NSTimer、CADisplayLink、GCD。接下來我就一一介紹它們的用法。 一、NSTimer 1. 建立方法 NSTimer *timer = [NSTimer scheduledTimerWi

iOSNSDateNSString相互轉換

本文來源地址:http://www.osjoin.com  今天給大家分享一些關於NSDate和NSString相互轉換。 日期轉成字串。這個雖然簡單,但是我相信很多朋友初次遇到肯定束手無策。腦

iOSprotobuftcp長連結(AsyncSocket)scoket配合使用

在ios開發中,客戶端開發最重要的就是資料的獲取和展示了,說到獲取資料,AFN是目前用的最廣的類庫了吧,不過在實時資料tcp獲取上面,我們還是需要用到AsyncSocket這個類庫來進行開發。不過近日聽過網上google的一個protobuf協議十分好用,就研究

iOSassignweak的區別

一、區別 assign與weak,它們都是弱引用宣告型別,最大的區別在那呢? 如果用weak宣告的變數在棧中就會自動清空,賦值為nil。 如果用assign宣告的變數在棧中可能不會自動賦值為nil,就會造成野指標錯誤! 二、例項 他們常用在基本型別屬性,比如BO

iOS字串富文字相互轉換

/**  *  富文字轉html字串  */ + (NSString *)attriToStrWithAttri:(NSAttributedString *)attri{     NSDictionary *tempDic = @{NSDocumentTypeDocumen

IOSRetainCopy的區別

1 ,可讀性: readonly  、 readwrite@property(readwrite,....) valueType value;這個屬性是變數的預設屬性,就是如果你 (readwrite and readonly 都沒有使用,那麼你的變數就是 readwrite 屬性 ) ,通過加入 read