2013-12-11 3 views
0

iOS 7에서 사용자는 설정 -> 일반 -> 접근성 -> 동작 감소에서 장치 동작 비활성화를 선택할 수 있습니다.CoreMotion - iOS 설정에서 모션이 비활성화되어 있는지 확인하는 방법은 무엇입니까?

UITableView 스크롤을 기반으로 UI 효과를 만들고 있으므로 CMMotionManager 또는 CoreMotion 프레임 워크를 사용하여 모션 효과를 만들지는 않습니다.

그러나 사용자 설정을 존중하고 사용자가 설정에서 Reduce Motion을 켰을 때 동작 효과를 생성하고 싶습니다.

CMMotionManagerincludes an instance methoddeviceMotionActive가 활성화 여부를 확인하기 위해, 그러나, 나는 슬프게도 난에 대한 문서를 찾을 수없는, 단지이 검사를 수행 할 관리자를 초기화하지 않아도 원합니다 (I이 정확한 검사입니다 있으리라 믿고있어) 유사한 부울을 반환하는 클래스 메서드, 같은 종류의 클래스 메서드가 MFMessageComposeViewController에 존재하므로 iMessage/SMS 가용성 (+(BOOL)canSendText)을 확인하는 등의 작업이 필요합니다.

감사합니다.

+0

@MatiasForbord 이것은 같은 질문이 아닙니다. 이 질문은 장치에서 기록한 동작을 타사 응용 프로그램에서 볼 수 있는지 여부와 관계없이 장치의 애니메이션 효과 동작 감소 (응용 프로그램 시작 애니메이션, UIAlertView 오버레이 효과 및 장치 기울임시 홈 화면 배경 무늬 이동과 관련이 있음)와 관련이 있습니다. – runmad

+0

예, 당신 말이 맞습니다 - 그것은 중복이 아니 었습니다. 당신이 필요로 생각한 것을 결정하는 것은 그 질문에 대한 대답으로 성취되었습니다. 너무 나빠서 아직 필요한 설정을 알아낼 수있는 방법이 없습니다! –

답변

0

"동작"이라는 별개의 두 가지 사항을 혼동합니다. CMMotionManager는 사용자가 물리적으로 장치를 움직이는 방식을보고하는 자이로 스코프 및 가속도계와 같은 센서에 액세스하는 데 사용됩니다. UIMotionEffect와 같은 모션 효과와는 아무런 관련이 없습니다. 애니메이션 효과는 뷰를 애니메이션화하는 데 사용됩니다.

deviceMotionActive 메서드는 현재 응용 프로그램이 CoreMotion에서 모션 업데이트를 수신하도록 등록되어 있는지 여부를 나타냅니다. 앱이 CMMotionManager startXXXUpdate 메소드 중 하나를 호출 한 경우에만 해당됩니다. 다시 말하지만, 사용자 설정이나 UIMotionEffect 객체와 아무 관련이 없습니다.

업데이트 : John이 주석에서 언급했듯이 iOS 8에는이 API가있는 것으로 보입니다. stackoverflow.com/a/25453082/2904769를 참조하십시오.

+0

올바른 방향으로 나를 가리켜 주셔서 감사합니다. 나는 또한 UIMotionEffect 라이브러리를 보았다. – runmad

+1

http://stackoverflow.com/a/25453082/2904769를 참조하십시오. iOS 8에는이 API가 있습니다. –