我正在學習使用iOS中的陀螺儀傳感器編寫應用程序。對於加速度計,是否有類似於UIAcceleration/UIAccelerometer/UIAccelerometerDelegate的陀螺儀?iOS陀螺儀API
13
A
回答
31
首次進口CoreMotion
框架
#import <CoreMotion/CoreMotion.h>
self.motionManager = [[CMMotionManager alloc] init];
//Gyroscope
if([self.motionManager isGyroAvailable])
{
/* Start the gyroscope if it is not active already */
if([self.motionManager isGyroActive] == NO)
{
/* Update us 2 times a second */
[self.motionManager setGyroUpdateInterval:1.0f/2.0f];
/* Add on a handler block object */
/* Receive the gyroscope data on this block */
[self.motionManager startGyroUpdatesToQueue:[NSOperationQueue mainQueue]
withHandler:^(CMGyroData *gyroData, NSError *error)
{
NSString *x = [[NSString alloc] initWithFormat:@"%.02f",gyroData.rotationRate.x];
self.gyro_xaxis.text = x;
NSString *y = [[NSString alloc] initWithFormat:@"%.02f",gyroData.rotationRate.y];
self.gyro_yaxis.text = y;
NSString *z = [[NSString alloc] initWithFormat:@"%.02f",gyroData.rotationRate.z];
self.gyro_zaxis.text = z;
}];
}
}
else
{
NSLog(@"Gyroscope not Available!");
}
正如代碼表示,首先,我創建運動管理器的實例。然後我看看該設備是否支持陀螺儀。如果不是優雅地死去,否則設置陀螺儀更新間隔&然後註冊以從陀螺儀獲取更新。有了這些更新,您需要定義您想要對值執行的自定義邏輯。這就是你很好去...
6
對於陀螺儀數據,您需要使用CoreMotion。通過閱讀relevant section of the Event Handling Guide for iOS開始。您需要使用兩類:CMGyroData封裝陀螺儀事件數據,CMMotionManager用於註冊陀螺儀事件。
的更多信息可以在這個問題上的選擇的答案中找到:Apple gyroscope sample code
相關問題
- 1. iOS - 陀螺儀樣本
- 2. iPhone/iPad陀螺儀
- 3. iOS-開始接收陀螺儀更新
- 4. 用陀螺儀導航視圖 - iOS
- 5. IOS加速度計/陀螺儀問題
- 6. 沒有陀螺儀的VR
- 7. Android陀螺儀示例?
- 8. iPhone 4沒有陀螺儀?
- 9. 陀螺儀更新核心運動
- 10. Android陀螺儀Y軸滾軸
- 11. 如何在Android中使用陀螺儀
- 12. 陀螺儀vs加速度計?
- 13. 基於磁力計和陀螺儀
- 14. CMMotionManager和iPhone 4上的陀螺儀
- 15. 陀螺儀更新無法啓動
- 16. 在Unity3d中使用Android陀螺儀
- 17. 從陀螺儀獲得角度
- 18. iPhone傾斜角度 - 使用陀螺儀?
- 19. 加速度計和陀螺儀數據
- 20. 哪些Android手機有陀螺儀?
- 21. 陀螺儀傳感器的結果Android
- 22. gluLookAt從陀螺儀角度向量
- 23. 陀螺儀不顯示任何漂移
- 24. iOS圍繞z軸旋轉的陀螺儀錯誤
- 25. 如何在IOS中模擬陀螺儀饋送?
- 26. 爲iOS 4加速度計/陀螺儀數據採集編寫測試案例
- 27. 陀螺儀通過android api或內核定製靈敏度設置?
- 28. 陀螺儀CMAttitude俯仰,滾轉和偏航角度問題
- 29. 如何在Unity中使用陀螺儀移動相機
- 30. 的iPad 1陀螺儀:滾轉,俯仰,偏航留零
[self.motionManager isGyroAvailable]這是檢查必須? 陀螺儀不可用會發生什麼?應用程序崩潰了嗎?或者返回空值。如果它返回空值,那麼哪個對象會返回空?由於較舊的iPhone沒有陀螺儀,所以它的支票是 – user682765
。如果您在設備本身不支持時開始使用陀螺儀API,它可能會崩潰。更好的是安全的比對不起... –
作爲更新:Apple的'startGyroUpdatesToQueue'文檔建議不使用主隊列,因爲這可能會導致滯後。要麼使用不同的隊列,要麼只是使用運動管理器的'.gyroData'屬性來獲取陀螺儀數據。如果您使用運動框架製作遊戲,我建議將時間間隔設爲1/60秒(以匹配幀速率),如果其中任何一個出現問題,請關閉獲取陀螺儀數據的時間間隔。 – DDPWNAGE