2013-12-11 14 views
0

在iOS 7上,用戶可以在設置 - >常規 - >輔助功能 - >減少動作中選擇禁用設備動作。CoreMotion - 確定iOS設置中的動作是否被禁用的方法?

我正在創建基於UITableView滾動的UI效果,所以我不使用CMMotionManagerCoreMotion框架來創建任何運動效果。

但是,如果用戶在「設置」中打開了Reduce Motion,我想尊重用戶的設置並且不創建動作效果。

CMMotionManagerincludes an instance methoddeviceMotionActive來檢查它是否是積極的(我假設這是正確的校驗),但是,我寧願沒有初始化經理只是做此項檢查,遺憾的是我不能找到任何文件一個類方法會返回一個類似的布爾值,有點類似MFMessageComposeViewController上的類方法來檢查iMessage/SMS的可用性(+(BOOL)canSendText)等。

謝謝!

+0

@MatiasForbord這不是同一個問題。此問題與設備的動畫效果(如應用啓動動畫,UIAlertView疊加效果和傾斜設備時移動的主屏幕壁紙)的減少運動有關,而不是設備記錄的動作活動是否可以被第三方應用查看。 – runmad

+0

是的,你是對的 - 它不是重複的。儘管如此,確定你認爲你需要的東西是在這個問題的答案中完成的。太糟糕了,你無法弄清楚你需要的設置! –

回答

0

你混淆了兩個單獨的東西,稱爲「運動」。 CMMotionManager用於訪問傳感器,例如陀螺儀和加速計,用於報告用戶物理移動設備的方式。它與運動效果無關,例如在動畫視圖中使用的UIMotionEffect對象。

deviceMotionActive方法僅指示您的應用程序當前是否註冊用於從CoreMotion接收運動更新。只有當您的應用程序調用了CMMotionManager startXXXUpdate方法之一時,纔會出現這種情況。同樣,它與用戶設置或UIMotionEffect對象無關。

更新:正如約翰在評論中提到的,在iOS 8中似乎有一個API:請參閱stackoverflow.com/a/25453082/2904769。

+0

謝謝你指點我在正確的方向。我也看了一下'UIMotionEffect'庫,以前也沒有。 – runmad

+1

請參閱http://stackoverflow.com/a/25453082/2904769。在iOS 8中有一個這樣的API。 –

相關問題