3d Touch 在 iPhone 6s+ 上不可用

3d Touch Not Available on iPhone 6s+

我正在尝试将 3d touch 添加到我的应用程序中。我正在尝试使用户能够在 UITableViewCell 上使用强制触摸,如 this project 中所示。我是运行这个代码:

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

我已经在 iPhone 6s+ 上尝试过 运行,但我在日志中收到 "unavailable"。为什么我不能在支持 3d touch 的设备上使用 3d touch?感谢您的帮助。

刚刚找到一些关于 3D Touch API 的参考资料:根据 3D Touch APIs 文档,Apple 建议开发者阅读 forceTouchCapability 中的 traitCollectionDidChange: 委托方法。

例如,您可以使用以下方法检查视图控制器中的值:

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

希望对您有所帮助。