21
A
回答
34
我認爲你必須使用Core Motion。好消息是,使用問題域並不困難。開始閱讀Event Handling Guide,特別是處理處理設備 - 運動數據部分。如果您只是有興趣知道有輕微的動作,如您所述,您可以省略旋轉處理和CMDeviceMotion.userAcceleration上的窄信號處理。這是因爲每次旋轉都會產生加速度計信號。
創建CMDeviceMotionHandler爲startDeviceMotionUpdatesToQueue:withHandler: 你CMDeviceMotionHandler描述應該這樣做:
float accelerationThreshold = 0.2; // or whatever is appropriate - play around with different values
CMAcceleration userAcceleration = deviceMotion.userAcceleration;
if (fabs(userAcceleration.x) > accelerationThreshold)
|| fabs(userAcceleration.y) > accelerationThreshold
|| fabs(userAcceleration.z) > accelerationThreshold) {
// enter code here
}
基本上就是這樣。請記住,每次加速都會有對應的。這意味着,如果您使用力量將設備移動(即加速)到右側,則會有一個減速對象來停止移動並讓設備停留在新位置。因此,您的if
條件對於每一個動作都會變爲兩次。
2
在viewDidAppear
,成爲第一個響應者:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self becomeFirstResponder];
}
並確保你可以第一個響應者:
- (BOOL)canBecomeFirstResponder {
return YES;
}
然後你就可以實現運動檢測。
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
if (event.subtype == UIEventTypeMotion){
//there was motion
}
}
相關問題
- 1. 使用iPhone的移動偵測
- 2. Android移動偵測
- 3. iOS移動偵測:移動偵測靈敏度級別
- 4. 移動偵測使用detectmobilebrowser
- 5. 移動偵測高流量網站
- 6. 機器人攝像頭+移動偵測
- 7. .NET移動偵測不一致
- 8. 移動偵測並支持舊設備
- 9. 覆盆子pi相機移動偵測
- 10. 使用imagecolorat()進行移動偵測
- 11. EmguCV - 移動偵測不返回角度
- 12. 簡單的動畫[iPhone]
- 13. 有沒有一種方法可以執行完全符合Facebook移動偵測的移動偵測?
- 14. 簡單的鼠標移動檢測(但沒有光標移動)在winapi
- 15. 檢測帶有javascript的移動設備的最簡單方法
- 16. 最簡單的方式來檢測移動設備
- 17. php移動偵測,頭部包含手動桌面開關
- 18. Java中的簡單焦點偵聽器
- 19. 簡單的按鍵偵聽器 - java
- 20. 簡單移動uiimageview代碼不動畫
- 21. Joomla 1.5中的PHP移動偵測腳本
- 22. WordPress的移動偵測插件,如果回聲問題
- 23. 測試iPhone移動設備管理(MDM)?
- 24. iPhone上的移動菜單未關閉
- 25. VS2013 - 移動一個簡單的斷點
- 26. 簡單的鼠標移動處理
- 27. 製作一個簡單的球類移動球但不移動
- 28. 自動檢測android:minSdkVersion的簡單方法?
- 29. 爲dotmailer 3列簡單的編輯器可移動的堆積 - 不會對iphone
- 30. Jenga來自蘋果源代碼/移動偵測
你給的鏈接非常好!儘管我一直在尋找運動讀物,並閱讀所有相關的課程參考資料 - 我只是找不到這樣的總結 - 謝謝! – 2011-08-07 06:14:09
感謝您以簡單易懂的方式解釋:) – Luqman 2013-05-30 14:46:38
此鏈接已死「處理已處理的設備 - 運動數據」您能否更新鏈接? – bpolat 2014-08-21 16:43:21