快速检查是否可以进行3D Touch

Gho*_*108 2 ios swift 3dtouch

在我的应用程序中,如果设备可以3D Touch,我将显示设置,这些设置应该是可见的.在我检查的时刻,如果设备有ios9.

if #available(iOS 9.0, *)
Run Code Online (Sandbox Code Playgroud)

问题是,例如iPhone 6有iOS 9但没有3D Touch.如何用swift检查3D Touch的可能性?

我找到了这篇文章,但没有快速的解决方案: 检查iOS9设备上是否支持和启用3D触控

还有一个问题.现在我想检查iOS 9和3D Touch是否可用.我试试这个:

if (#available(iOS 9.0, *)) AND (is3DTouchAvailable() == true) {
Run Code Online (Sandbox Code Playgroud)

但我总是得到这个错误:

在'if'条件之后预期'{'

Irf*_*Gul 6

试试这个快速的代码,self是指你的UIViewController

func is3DTouchAvailable() -> Bool
{
    return self.traitCollection.forceTouchCapability == UIForceTouchCapability.Available
}
Run Code Online (Sandbox Code Playgroud)

  • 可以将方法减少为`return traitCollection.forceTouchCapability == .Available`. (3认同)