有没有办法禁用弹出窗口拖动



我正在创建一个使用webview的应用程序。我的第一个网络视图(主视图(,只是用于一个简单的网站。然而,当我点击某个链接时,我会打开一个交互式地图(也在网络视图中(。我很想以popover的形式打开新的网络视图,我通过以下方式获得了成功:

let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "PopoverViewController")
vc.modalPresentationStyle = .popover
let popover: UIPopoverPresentationController = vc.popoverPresentationController!
present(vc, animated: true, completion:nil)

但这个网络视图包含地图,它需要一些用户手势,比如滑动等等。但popover也会对相同的手势和移动做出反应,这不是我想要的行为。有没有办法固定popover的位置,这样它就不会对用户的手势做出反应?

如果可以删除

vc.modalPresentationStyle = .popover

因为它基本上与锚定到现有视图的默认模态表示相同。

然后,您可以通过禁用用于向下拖动以消除的默认手势识别器来实现这一点:

// Modify your last line...
present(vc, animated: true, completion: {
// Disable drag gesture recognizer
vc.presentationController?.presentedView?.gestureRecognizers?[0].isEnabled = false
})

最新更新