2016-04-23 63 views
3

我想將三維觸摸添加到我的應用程序中。我試圖讓用戶在UITableViewCell上使用強制觸摸,如​​所示。我正在運行此代碼:三維觸摸不適用於iPhone 6s +

if traitCollection.forceTouchCapability == UIForceTouchCapability.Available { 
    registerForPreviewingWithDelegate(self, sourceView: view) 
} else { 
    print("unavailable") 
} 

我試過在iPhone 6s +上運行它,但我在我的日誌中收到「不可用」。爲什麼我不能在3D觸控支持的設備上使用3D觸控?謝謝你的幫助。

+0

你什麼時候執行代碼?在'viewDidLoad'或其他地方/ –

+0

是的,我在視圖中運行這個DODLoad – penatheboss

+0

你會介意檢查你的設備上是否啓用3D Touch嗎?進入設置>常規>輔助功能> 3D Touch –

回答

4

剛剛發現了一些關於3D Touch APIs的參考資料:根據3D Touch APIs文檔,Apple建議開發者在traitCollectionDidChange:的代碼方法中讀取forceTouchCapability

例如,您可以在您的視圖控制器使用檢查值:

override func traitCollectionDidChange(previousTraitCollection: UITraitCollection?) { 
    super.traitCollectionDidChange(previousTraitCollection) 
    switch traitCollection.forceTouchCapability { 
    case .Available: 
     print("Available") 
    case .Unavailable: 
     print("Unavailable") 
    case .Unknown: 
     print("Unknown") 
    } 
} 

希望它能幫助。