我有一组可以切换的视图(按钮)。它们用作过滤器。让我们说它是一个公共交通应用程序,你会看到问题"你想带什么交通方式旅行?",你有三种选择:&#34 ;公共汽车","渡轮"和#34;训练"。您可以单击它们中的每一个来禁用或启用它们。
我希望实现3D触控其中一个功能,将特定按钮切换为on
,将所有其他按钮切换为off
。
我在应用程序中使用了3D触摸的几个地方,但总是使用peek / pop。我在添加3D触摸方面苦苦挣扎,而无需在UIViewController
- 函数中返回previewingContext
。是否可以在3D触摸时简单地执行操作?
我可以在previewingContext(::) -> UIViewController?
中执行我的操作,但我不想返回要查看的UIViewController。如果我返回nil
,那么我就不会得到taptic(?)反馈。一旦用户"可能"就会调用此函数。在实际按下之前,先用力触摸。
答案 0 :(得分:2)
事实证明,通过实施UIViewControllerPreviewingDelegate
,3D触摸(或强制触摸或其他任何调用)不仅仅 。这个代表的工作是决定用peek / pop呈现什么,而peek和pop的核心功能可以通过普通UIGestureRecognizer
访问。我按照this指南创建了自己的ForceGestureRecognizer,但决定继承UILongPressGestureRecognizer
而不是UIGestureRecognizer
(将其与现有函数结合使用)。
该指南以及this(使用UINotificationFeedbackGenerator
创建小震动反馈)以及一些CGAffineTransform
- 基于触摸力的变化确实使其变得完美。