是否有API可以在应用内强制触摸时显示快速操作菜单?当您向上滑动查看视图时,我只看到用于显示快速操作菜单的API。但我想做一些像apple 3D touch page的例子。
答案 0 :(得分:3)
可能有另一种解决方案,但我认为您可以在检测3D触摸时显示此自定义视图。你可以从
那里做到UIViewControllerPreviewingDelegate
方法previewingContext:viewControllerForLocation:
要么
您可以使用force
的{{1}}和maximumPossibleForce
属性来检测屏幕上施加的压力,并在特定压力级别后显示此自定义视图。答案 1 :(得分:0)
您可以尝试我自己的库ActionsList,其外观和感觉与Apple的快速操作菜单相同。
尚未支持3D Touch ,但它可以帮助您呈现与提供商屏幕截图相同的操作列表。
首先,您应该创建列表。
如果您想要UIButton
,UIBarButtonItem
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