我遵循了Apple關于在我的應用程式中實作觸覺功能的指南。我在 iPhone 上進行了測驗,但是當我觸發觸覺操作(點擊 tableView 控制器上的按鈕)時,沒有任何反應。Thie是我的實作:
if supportHaptics {//line 95
do {
let player = try hapticsEngine.makePlayer(with: hapticPattern)
hapticsEngine.start(completionHandler:nil)
try player.start(atTime: 0)//line 99
hapticsEngine.stop(completionHandler: nil)
} catch {
print(error)
}
}
我敢肯定,我hapticsEngine和hapticPattern有效,并沒有錯誤,因為如果我通過設定在線路95和散步休息do一行塊行,我的手機DOES線99后震動只是,之后我洗掉了斷點并運行應用程式,我的 iPhone 沒有發送任何觸覺反饋。
我錯過了什么?任何事情都會有所幫助。
uj5u.com熱心網友回復:
您將 start 與完成處理程式引數一起使用,這意味著觸覺引擎將異步作業,即在未來某個時間作業,然后停止它。在逐步除錯中它起作用,因為觸覺引擎有足夠的時間來執行。如果您想要同步(即立即啟動),您必須呼叫 start()(= 沒有與引數 = nil 不同的引數)來自 Apple 檔案:
呼叫觸覺引擎的 start(completionHandler:) 進行異步啟動,或呼叫 start() 同步(立即)啟動引擎。
uj5u.com熱心網友回復:
好的,我解決了。不要CHHapticsEngine用于完成抽頭反饋。相反,使用下面的兩行可以輕松觸發點擊(來自 UIKit)。
let feedbackGenerator = UIImpactFeedbackGenerator(style: .medium)
feedbackGenerator.impactOccurred()
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/347597.html
