2016-04-23 24 views
3

私のアプリケーションに3Dタッチを追加しようとしています。私は​​に示されているように、ユーザーがUITableViewCellで強制タッチを使用できるようにしようとしています。私はこのコードを実行しています:3DタッチがiPhone 6sで利用できない+

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

私はiPhone 6S +上でそれを実行しようとしているが、私は私のログに「利用不可」受け取ります。 3Dタッチ対応デバイスで3dタッチを使用できないのはなぜですか?ご協力いただきありがとうございます。

+0

コードをいつ実行しましたか? 'viewDidLoad'または他のどこかで/ –

+0

はい、私はviewDidLoad – penatheboss

+0

でこれを走らせましたあなたのデバイスで3D Touchが有効になっているかどうかチェックしてもよろしいですか?設定>一般>アクセシビリティ> 3Dタッチ –

答えて

4

3DタッチAPIについての参考文献を見つけました。3D Touch APIsのドキュメントによれば、AppleはforceTouchCapabilitytraitCollectionDidChange:代理人メソッドで読むことを提案しています。

たとえば、あなたが使用してビューコントローラの値をチェックすることがあります。

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

はそれがお役に立てば幸いです。

関連する問題