2010-06-04 56 views

回答

0

我假設你正在談論標題。這隻適用於iPhone 3GS和即將推出的機型。

調用startUpdatingHeading方法上的位置管理,並實現

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading

檢索來自經理的標題。

0

如果您想讓iPhone在地圖上行駛的指南針方向,請使用dc的答案。如果要檢測iPhone的晃動和移動,請使用加速度計:

您創建一個類或將類指定爲<UIAccelerometerDelegate>,然後實現didAccelerate方法。例如,該類可以是您現有的視圖控制器。

通過分別檢查acceleration.x,.y和.z,您可以在該方法內分別檢測相對於底部,左側和進/出軸的「重力拉動」方向。每個軸將有一個從0.0到1.0的度量,並且它們一起形成長度爲1的向量,該向量指向重力拉動的方向,基本上是它所保持的角度。例如,當面朝上躺在桌子上時,拉力將以+ Z方向('進入屏幕'軸)。

這是當iPhone是靜止的身體。如果iPhone晃動,矢量長度會偏離1.0。你可以計算矢量長度與勾股定理,只需l = sqrt(x*x+y*y+z*z);

要啓動加速度計測量,如果你想查詢它每秒60次使用此代碼

UIAccelerometer *acc=[UIAccelerometer sharedAccelerometer]; 
acc.delegate=self; 
acc.updateInterval=1/60; 

。簡單而有趣:)