我想在我的应用程序中添加一项需要 3D 触摸的功能,但它说forceTouchCapability 不可用。 我在三个虚拟设备(iPhone 14 - iPhone 14 Pro - iPhone 11)上进行了尝试,所有设备都是相同的,并且都是最新的。 这是我的代码:
class ViewController: UIViewController {
override func viewDidLoad() {
}
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
switch traitCollection.forceTouchCapability {
case .available:
print("Available")
case .unavailable:
print("Unavailable")
case .unknown:
print("Unknown")
@unknown default:
print("dd")
}
}
}
我还从github下载了很多项目,使用了3D touch的功能。 他们也显示与我的项目相同的错误。 请问有什么问题吗?
3D Touch 在 iPhone 11 系列中被删除,所有较新的 iPhone 都没有它,所以您所看到的是正确的 - 您正在不支持 Force Touch 的设备上测试
forceTouchCapability
。
如果您想查看哪些 iPhone 型号支持 3D Touch,请参阅调整 iPhone 对触摸的响应方式,滚动到调整触摸并按住手势的设置部分,然后选择
iPhone with 3D Touch
。如您所见,在支持 iOS 17 的 iPhone 中,只有 iPhone XS 和 XS Max 支持 3D Touch。
另请参阅this文章,解释 3D Touch 在 2018 年之后推出的 iPhone 中不可用。