可以在拖动操作上关闭 UIPopoverController

Posted

技术标签:

【中文标题】可以在拖动操作上关闭 UIPopoverController【英文标题】:Possible to dismiss a UIPopoverController on a drag action 【发布时间】:2017-06-08 18:28:23 【问题描述】:

我在调用 UIPopoverController 的主视图/控制器中有一些 UITouch 拖动活动。令人惊讶的是,当用户在调用视图上拖动时,弹出框并没有被关闭,尽管单击一下就会关闭它。

有谁知道如何在视图拖动时强制弹出框关闭?似乎没有收到视图的触摸事件,所以我最好的猜测是查看应用程序的视图事件并尝试从那里找出拖拽,但我不确定。

【问题讨论】:

【参考方案1】:

当显示时,在弹出窗口外点击会导致弹出窗口自动消失。要允许用户与指定的视图交互而不关闭弹出框,您可以将一个或多个视图分配给 passthroughViews 财产。弹出窗口内的点击不会自动导致弹出窗口被关闭。您的视图和视图控制器代码必须显式处理弹出框内的操作和事件并调用 解雇(动画:) 根据需要使用方法。

文档:https://developer.apple.com/documentation/uikit/uipopovercontroller

【讨论】:

我没有说轻拍,我说的是拖拽。据我所知,拖动活动不会关闭弹出窗口。

以上是关于可以在拖动操作上关闭 UIPopoverController的主要内容,如果未能解决你的问题,请参考以下文章

如何在IOS中绘制一个圆圈并移动它/拖动它? [关闭]

在 X 上拖动的对象下方缓慢重绘... Qt 可以强制拖放操作仅在内部进行吗?

在两个 UiViewControllers 和 UIViews 之间实现拖动和滑动转换? [关闭]

如何在Android中对图像应用缩放、拖动和旋转[关闭]

通过向后滑动关闭 UISwipeActionsConfiguration

是啥使得可以在 Mac 上拖动打开文件?