如何在iPhone 6s和6s Plus上构建自定义快速链接,就像iPhone 6s和6s Plus中的原生应用程序一样?
答案 0 :(得分:0)
按预期非常简单:
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
guard let touch = touches.first else { return }
if traitCollection.forceTouchCapability == .Available {
println("Pressure is \(touch.force) and maximum force is \(touch.maximumPossibleForce)")
}
}
答案 1 :(得分:0)
正如我在realm.io
中提到的那样在基础层面,仅作为UITouch中的新属性公开
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
guard let touch = touches.first else { return }
if traitCollection.forceTouchCapability == .Available {
println("Touch pressure is \(touch.force), maximum possible force is \(touch.maximumPossibleForce)")
} }
除了UITouch API之外,Apple还提供了两组新的类,为应用添加3D Touch功能:UIPreviewAction和UIApplicationShortcutItem。
UIPreviewAction允许开发人员在3D触摸UI元素时快速在新的“预览”叠加层中显示内容。这是一种很棒的方式,可以快速浏览特定于应用的内容,例如电子邮件,照片甚至网站,而无需提交全视图控制器转换。
UIApplicationShortcutItem对象在iOS主屏幕上启用了一项令人惊叹的新功能。当用户3D触摸应用程序图标时,会显示一个选项,允许用户快速跳转到应用程序的特定部分,或执行应用内操作。
另外,不要忘记apple document for 3D touch。
答案 2 :(得分:0)
其他答案很接近,但没有雪茄。您需要添加touchesMoved:withEvent:
方法(不是touchesBegan:withEvent:
):
override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
guard let touch = touches.first else {
return
}
if traitCollection.forceTouchCapability == .Available {
print("Touch pressure is \(touch.force), maximum possible force is \(touch.maximumPossibleForce)")
}
}