是否有一些iOS库在旧设备上模拟3D触摸查看和弹出?

时间:2015-09-14 08:01:49

标签: ios cocoa-touch uikit 3dtouch

让图书馆同时具有以下优势:

  • 在iPhone 6s上使用新的3D Touch API
  • 在旧设备上用一些手势模拟偷看和弹出。

优点:

  • 旧设备的用户可以从新的界面可能性中受益
  • 采用偷看和流行会更快 - 没有必要等待几年,直到每个人都有更新的模型。
  • 开发人员不需要立即购买新硬件来测试3D触摸

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

6 个答案:

答案 0 :(得分:1)

您可以通过查看iOS 8中提供的UITouch属性majorRadiusmajorRadiusTolerance来模拟行为,这些属性描述the approximate radius of the touch或“手指肥胖”。< / p>

这应该与压力松散相关。

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

答案 1 :(得分:1)

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

用法非常简单:

  • 将UILongPressGestureRecognizer添加到要查看的视图中(即 表视图单元格,图像,超文本等)
  • 创建一个UIViewController 实例作为窥视视图的内容;然后设置您想要的框架 用于内容视图。建议留下15px填充 内容视图的左右边距。
  • 如果你愿意的话 包括预览动作,准备一个包含标题的数组 按钮及其预览样式。不要忘记准备完成 点击每个按钮时的处理程序。

示例代码段:

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

预览:

Screenshot

答案 2 :(得分:0)

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

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

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

enter image description here

答案 3 :(得分:0)

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

调整偷看和弹出之间的第二个dispatch_after的时间。

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

答案 4 :(得分:0)

这是苹果推荐的:

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

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

答案 5 :(得分:0)

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