加速計(重力感應功能)的使用

2021-06-28 19:16:49 字數 1082 閱讀 6506

一、概述

加速計是用來檢測手機受到加速度的大小和方向的,而手機靜止的時候只受到重力加速度,所以很多人把加速計功能有叫做重力感應功能。加速計的強項在於測量裝置的重力方向。

iphone提供了內建的加速計,也叫方向感應器,是通過感知特定方向的慣力總量,測量出加速度和重力的,是   ios很重要的特色功能之一。感應器通過跟蹤裝置在其x、y、z軸上的重力加速度的方向,檢測到裝置當前的方向比如是平放著還是測立著,平放時正面向上還是向下,手持時home鍵所處的四個方向等;也可以通過偵測加速度來移 動螢幕上的物件;也可以通過加速計偵測晃動事件。接下裡就詳細介紹一下對應的類uiaccelerometer。

二、uiaccelerometer類

1、獲取uiaccelerometer的例項,並進行相應的設定

注:在應用加速計的檢視消失時,應該 停止感應器資料的更新,這樣感應器的硬體也會關閉,從而也能                起到節約電池的作用。 

2、實現**方法,獲取資料

- (void)accelerometer:(uiaccelerometer *)accelerometer didaccelerate:(uiacceleration *)acceleration  

注:通過改變手機的手持方式或搖動手機,觀察控制台的輸出變化。

3、偵測晃動事件

用加速計偵測晃動事件,需要在收到重力加速計的資料後做一些複雜的數**算才能很好的實現,但是,  uiresponder給我們提供了這些工作,我們只需使用下面的介面:

-(void)motionbegan:(uieventsubtype)motion withevent:(uievent *)event  

-(void)motionended:(uieventsubtype)motion withevent:(uievent*)event

-(void)motioncancelled:(uieventsubtype)motion withevent:(uievent*)event

// 由於視窗物件的第一響應者會收到所有的運動事件,為了確保應用當前檢視控制器類為第一響應者,做如下兩  個操作 

-(bool)canbecomefirstresponder

thinkpad 使用重力感應程式設計

注意,只有是thinkpad 並支援重力感應,才回有sensor.dll 貌似是 include stdafx.h include include windows.h using namespace std typedef void stdcall print int main accelerome...

iOS裝置使用重力感應

首先在你需要檢測重力感應的uiview或者uiviewcontroller新增委託 然後自己定義乙個 uiaccelerometer accelerometer ios的重力感應是用單例實現的,初始化accelerometer accelerometer uiaccelerometer shared...

animation的屬性,加速度,重力的模擬實現

屬性 描述css keyframes 規定動畫。3animation 所有動畫屬性的簡寫屬性,除了 animation play state 屬性。3animation name 規定 keyframes 動畫的名稱。3animation duration 規定動畫完成乙個週期所花費的秒或毫秒。3a...