拥有两者的库会很棒:
- 在 iPhone 6s 上使用新的 3D Touch api
- 在旧设备上通过一些手势模拟 peek 和 pop。
优点:
- 旧设备的用户可以从新的界面可能性中受益
- 采用 peek and pop 会更快 - 无需等待数年,直到每个人都有更新的模型。
- 开发人员无需立即购买新硬件来测试 3D touch
任何人都知道这是否可能或知道代码 - 请与我们分享。
拥有两者的库会很棒:
优点:
任何人都知道这是否可能或知道代码 - 请与我们分享。
您也许可以通过查看iOS 8 中可用的UITouch
属性majorRadius
和来模拟该行为,它描述了触摸的近似半径或“手指肥胖”。majorRadiusTolerance
这应该与压力松散相关。
我不确定属性会不断变化/产生touchesMoved:
回调流,但这可能是一个开始。
我已经构建了一个库,用作没有 3D Touch 的设备的替代方案。我的演示项目还演示了该项目如何支持这两种类型的设备。你可以在这里试试:PeekView
用法很简单:
示例片段:
PeekView.viewForController(
parentViewController: self,
contentViewController: controller,
expectedContentViewFrame: frame,
fromGesture: gestureRecognizer,
shouldHideStatusBar: true,
withOptions: ["Option 1": .Destructive, "Option 2": .Default, "Option 3": .Selected],
completionHandler: { optionIndex in
switch optionIndex {
case 0:
print("Option 1 selected")
case 1:
print("Option 2 selected")
case 2:
print("Option 3 selected")
default:
break
}
})
预习:
您可以使用此代码在模拟器中模拟 peek 和 pop: https ://gist.github.com/nickfrey/07e2c6d8d2e5444fb91d
dispatch_after
调整peek 和 pop 之间的第二个时间。
当然,这仅适用于调试,因为它使用私有 API。
这是一个开源项目,它为 iPhone 模拟器提供了一个巧妙的调整,允许您在名为 SBShortcutMenuSimulator 的 iOS 模拟器中模拟 3D 触摸。
SBShortcutMenuSimulator 允许您测试 UIApplicationShortcutItem API 的使用,即使没有支持 3D 触摸的设备。
自述文件中的此屏幕截图显示了模拟器中应用程序快捷菜单的演示:
这是苹果推荐的:
“为确保您的所有用户都可以访问您的应用程序的功能,请根据 3D Touch 是否可用来分支您的代码。当它可用时,利用 3D Touch 功能。当它不可用时,提供替代方案,例如使用触摸和保持,使用 UILongPressGestureRecognizer 类实现。”
请查看此链接:https ://goo.gl/4ez21g
STPopupPreview:https
://github.com/kevin0571/STPopupPreview
一个易于集成的库,用于在非 3D Touch 设备上进行峰值预览。