使用3DTouch Peek和Pop功能,模仿下面描述的功能最有效的方法是什么(同时滑动“窥视”内容以执行操作)?下面的截图来自iOS本地邮件应用程序。


发布于 2016-04-06 19:52:37
更新
您可以在iOS 10上复制这种效果。有一组名为UIPreviewInteraction和UIPreviewInteractionDelegate的新API,可以为peek/pop交互提供自定义表示。我强烈推荐在今年的WWDC观看3D触摸的窥视。
原始答案
看看iOS运行时头,有一个名为UIPreviewPresentationController的类。那是负责窥视的控制器。在其中,有对名为leadingPreviewAction和trailingPreviewAction的对象的引用。它们有相应的属性来处理边缘约束和中心。从使用引线和尾随(如汽车布局)判断,这些可能对应于左右动作项目。
这是猜测,但我认为这些相关的私有类(_UIPreviewQuickActionView)控制着您正在寻找的行为。现在还没有。
同样,UIPreviewAction的文档说:
当用户向上滑动时,预览操作或快速查看操作将显示在peek 下面。快速查看操作通常会选择一个指向应用程序的深度链接,并有一个标题、样式和处理程序。
发布于 2015-12-11 12:32:50
要使用Peek Quick ,您的detailledViewControler (或您命名的名称)应该像这样覆盖previewActionItems:
lazy var previewActions: [UIPreviewActionItem] = {
func previewActionForTitle(title: String, style: UIPreviewActionStyle = .Default) -> UIPreviewAction {
return UIPreviewAction(title: title, style: style) { previewAction, viewController in
guard let detailViewController = viewController as? DetailViewController,
item = detailViewController.detailItemTitle else { return }
print("\(previewAction.title) triggered from `DetailViewController` for item: \(item)")
}
}
let action1 = previewActionForTitle("Default Action")
let action2 = previewActionForTitle("Destructive Action", style: .Destructive)
let subAction1 = previewActionForTitle("Sub Action 1")
let subAction2 = previewActionForTitle("Sub Action 2")
let groupedActions = UIPreviewActionGroup(title: "Sub Actions…", style: .Default, actions: [subAction1, subAction2] )
return [action1, action2, groupedActions]
}()
override func previewActionItems() -> [UIPreviewActionItem] {
return previewActions
}https://stackoverflow.com/questions/33886695
复制相似问题