如何在应用程序中添加3D触摸快速操作?喜欢在联系中

时间:2016-02-11 05:54:15

标签: ios 3dtouch quickaction

是否有API可以在应用内强制触摸时显示快速操作菜单?当您向上滑动查看视图时,我只看到用于显示快速操作菜单的API。但我想做一些像apple 3D touch page的例子。

这是我想要实现的目标 3D touch quick actions menu on contacts on 6s

2 个答案:

答案 0 :(得分:3)

可能有另一种解决方案,但我认为您可以在检测3D触摸时显示此自定义视图。你可以从

那里做到
  • UIViewControllerPreviewingDelegate方法previewingContext:viewControllerForLocation: 要么 您可以使用force的{​​{1}}和maximumPossibleForce属性来检测屏幕上施加的压力,并在特定压力级别后显示此自定义视图。

答案 1 :(得分:0)

您可以尝试我自己的库ActionsList,其外观和感觉与Apple的快速操作菜单相同。

尚未支持3D Touch ,但它可以帮助您呈现与提供商屏幕截图相同的操作列表。

首先,您应该创建列表。

如果您想要UIButtonUIBarButtonItem UITabBarItem的{​​{1}}来呈现它,可以使用内置方法创建列表:

// element is UIButton, UIBarButtonItem or UITabBarItem
let list = element.createActionsList()

否则你应该使用ActionsListModel结构:

let list = ActionsListModel(senderView: viewThatInitiatedListPresenting,
                            sourceView: viewToPresentListFrom,
                            delegate: listDelegate)

然后向列表添加操作

list.add(action: ActionsListDefaultButtonModel(localizedTitle: "Create Alarm", 
                 image: UIImage(named: "Alarm clock"),
                 action: { action in
                     // You can use action's list property to control it

                     // - To dismiss
                     action.list?.dismiss()

                     // - To update action appearance
                     action.appearance.//anything
                     // Do not forget to reload actions to apply changes
                     action.list?.reloadActions()
          }))

之后您可以提供列表

list.present()

// Save list or it will be deallocated and not reachable outside of the scope it was created in
self.list = list

enter image description here