2016-12-12 4 views
2

내 앱에서 몇 가지 햅틱을 사용하고 싶습니다. UISelectionFeedbackGenerator을 사용하고 있지만 작동하지 않습니다. 나는이 두 라인이 마법을 수행해야합니다 아이폰 OS (10)와 실제 아이폰 7에 테스트입니다 -하지만 아무 반응이 없습니다 : 당신이 selectionChanged()를 호출하기 전에iPhone 7에서 UISelectionFeedbackGenerator()가 작동하지 않습니다.

let generator = UISelectionFeedbackGenerator() 
generator.selectionChanged() 
+0

해결 방법이 있습니까? – shelll

+0

나는 여기 같은 배에 타고있다. 내 viewController 중 하나에서 햅틱 피드백은 작동하지 않습니다. 또 다른 방법은 준비 없이도 작동합니다. 나는 무슨 일이 일어나고 있는지 이해할 수 없다. – ullstrm

답변

0

, 당신은 generator.prepare()를 호출해야합니다. 이것은 햅틱 엔진을 깨운다. 그래도 몇 초 동 안 활성 상태로 유지 될 것이므로 selectionChanged()에 전화하면 다시 prepare() 메시지가 표시됩니다.

다음
let generator = UISelectionFeedbackGenerator() 
generator.prepare() 
generator.selectionChanged() 
+0

나는 prepare()도 시도했다. 나는 그것을 다시 시도하고보고 할 것이다. 감사! –

+0

나는 그것이 작동하지 않습니다. 나는 iOS 9 용 타겟을 가진 앱을 빌드하고 있기 때문에이 라인들을 if #available (iOS 10.0, *) {...}'에 배치하고있다. 또한 조건없이 아이폰 OS 10에 대해서도 아이폰 7에서 동작하지 않을 것이다. 또한 stackoverflow에 게시하기 전에 내가 시도했던 것 또한 excatly했다. –

+0

이상한 전화 수준에서 접근을 비활성화하는 접근성 설정이 있습니까? 날짜 선택기를 사용하거나 Apple 주식 앱에서 테이블 뷰 셀을 이동하여 시도한 적이 있습니까? – tracicot

0

오래된 장치에서 작동 몇 가지 대안 :

import AudioToolbox 

AudioServicesPlaySystemSound(1519) // Actuate `Peek` feedback (weak boom) 
AudioServicesPlaySystemSound(1520) // Actuate `Pop` feedback (strong boom) 
AudioServicesPlaySystemSound(1521) // Actuate `Nope` feedback (series of three weak booms) 
2

그것은 것처럼 보인다 AVFoundation (또는 아마 AVCaptureSession) 어떻게 든 햅틱 피드백 장난입니다! AVFoundation이 없으면 나의 햅틱 피드백이 작용합니다. 내가 거기에 넣 자마자 작동을 멈 춥니 다.