iOS感應器的使用

來源:互聯網
上載者:User

標籤:

轉載自 http://bigbelldev.com/blog/2013/08/05/ios-accelerometer/大鐘威武 部落格iOS涉及到的感應器

不用查資料,用過iPhone的同學都知道。iphone中有加速度感應器,可以感知手機在哪個方向上有加速度,比如螢幕的翻轉、飛行控制遊戲等都是利用這個特徵做的;有指南針(貌似叫陀螺儀?),可以知道你的方向;還有定位裝置,可以知道你現在的位置在哪裡。

加速度感應器相關功能是由CoreMotion提供;指南針、定位資訊相關功能由CoreLocation提供。

CoreMotion

在CoreMotion.framework中,有下面這些類:

1234567
CMAccelerometerDataCMAttitudeCMDeviceMotionCMGyroDataCMLogItemCMMagnetometerDataCMMotionManager

每個是做什麼的,可以在官方文檔中閱讀,就不在這翻譯了。其中實現對裝置加速度的識別,主要是使用CMMotionManager。

CMMotionManager

如何使用CMMotionManager?

Step1:產生一個CMMotionManager的執行個體mManager。

Step2:執行個體使用方法isAccelerometerAvailable判斷加速度感應器是否可用。

Step3:如果可用,則通過方法setAccelerometerUpdateInterval設定採樣頻率。

Step4:最後使用startAccelerometerUpdatesToQueue:withHandler開始採樣及對採樣進行處理。

範例程式碼

我在下面的代碼中,實現了一個小球在一個框中運動,運動的軌跡是根據手機的傾斜角度計算,運動的方向同傾斜的角度一致,並且傾斜角度越大運動速度越快。 代碼下載 在代碼的實現過程中,對view的層次有了更深的體會。此外,在給label供數的時候,發現剛好使用代理的方式,算是也對代理做了聯絡。

編碼過程中遇到七七八八問題的記錄Code Sign error:

著手時,借鑒了這個代碼,在編譯時間遇到了這個問題:

Code Sign error: The identity ‘iPhone Developer: Haomian Wang (33P29785DD)‘ doesn‘t match any valid certificate/private key pair in the default keychain

原因:

CodeSigning簽署的不是你的provisioning,沒法在真機上使用。

解決辦法:

在TARGETS中的Build Settings裡,找Code Signing Identity,裡面把不是自己的developer改成自己的provisioning。

註:

借鑒的這份代碼是使用acceleroImeter:didAccelerate方法來處理撲捉到的加速度資訊,但這個方法已經在iOS5廢棄了,現在都使用CoreMotion架構來實現。

未添加CoreMotion.framework

編譯自己代碼時,首先出現了如下錯誤:

原因:

原因是代碼中使用了CoreMotion,但工程中沒有添加CoreMotion.framework。這很常見:在使用CoreLocation等framework時,也要想著在工程中添加framework。

解決辦法: 在處添加CoreMotion.framework

給工程改名字導致編譯不過

這是個題外話,當時想給工程改個名字,結果改了之後,編譯不過。 原因:

原因都是名字、路徑更改導致的找不到檔案。

解決辦法:

改名字注意三點:

  1. 修改了Project的名字後,Xcode會提示你一些其他地方也需要修改,你就按著提示修改;
  2. 也修改本地檔案夾的名字後,注意xcode工程中的檔案清單檔案名稱是否會變為紅色,如果是紅色,需要你再想辦法重新加一下路徑;
  3. 工程中的BuildSettings,這裡最好搜一下你原來的名字,變更。我遇到的編譯不過都是這裡的路徑還保留著原來的名字,未作更改。

iOS感應器的使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.