0

拥有两者的库会很棒:

  • 在 iPhone 6s 上使用新的 3D Touch api
  • 在旧设备上通过一些手势模拟 peek 和 pop。

优点:

  • 旧设备的用户可以从新的界面可能性中受益
  • 采用 peek and pop 会更快 - 无需等待数年,直到每个人都有更新的模型。
  • 开发人员无需立即购买新硬件来测试 3D touch

任何人都知道这是否可能或知道代码 - 请与我们分享。

4

6 回答 6

1

您也许可以通过查看iOS 8 中可用的UITouch属性majorRadius和来模拟该行为,它描述了触摸的近似半径或“手指肥胖”。majorRadiusTolerance

这应该与压力松散相关。

我不确定属性会不断变化/产生touchesMoved:回调流,但这可能是一个开始。

于 2015-09-25T01:28:31.510 回答
1

我已经构建了一个库,用作没有 3D Touch 的设备的替代方案。我的演示项目还演示了该项目如何支持这两种类型的设备。你可以在这里试试:PeekView

用法很简单:

  • 将 UILongPressGestureRecognizer 添加到要查看的视图(即表格视图单元格、图像、超文本等)
  • 创建一个 UIViewController 实例作为你的 peek 视图的内容;然后为内容视图设置所需的框架。建议为内容视图的左右边距留出 15 像素的内边距。
  • 如果要包含预览操作,请准备一个包含按钮标题及其预览样式的数组。不要忘记为每个按钮被点击时准备完成处理程序。

示例片段:

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
                    }
                })

预习:

截屏

于 2016-02-12T16:48:19.920 回答
0

您可以使用此代码在模拟器中模拟 peek 和 pop: https ://gist.github.com/nickfrey/07e2c6d8d2e5444fb91d

dispatch_after调整peek 和 pop 之间的第二个时间。

当然,这仅适用于调试,因为它使用私有 API。

于 2015-09-29T13:57:43.250 回答
0

是一个开源项目,它为 iPhone 模拟器提供了一个巧妙的调整,允许您在名为 SBShortcutMenuSimulator 的 iOS 模拟器中模拟 3D 触摸。

SBShortcutMenuSimulator 允许您测试 UIApplicationShortcutItem API 的使用,即使没有支持 3D 触摸的设备。

自述文件中的此屏幕截图显示了模拟器中应用程序快捷菜单的演示:

在此处输入图像描述

于 2015-09-16T12:20:20.670 回答
0

这是苹果推荐的:

“为确保您的所有用户都可以访问您的应用程序的功能,请根据 3D Touch 是否可用来分支您的代码。当它可用时,利用 3D Touch 功能。当它不可用时,提供替代方案,例如使用触摸和保持,使用 UILongPressGestureRecognizer 类实现。”

请查看此链接:https ://goo.gl/4ez21g

于 2015-10-08T23:51:21.487 回答
0

STPopupPreview:https
://github.com/kevin0571/STPopupPreview 一个易于集成的库,用于在非 3D Touch 设备上进行峰值预览。

于 2016-05-24T06:22:56.747 回答