UIAlertController popoverPresentationController 覆盖 sourceView

UIAlertController popoverPresentationController covering sourceView

我正在为 UIAlertController 设置属性,如下所示:

alertController.modalPresentationStyle = .popover
alertController.popoverPresentationController?.sourceView = sourceView
alertController.popoverPresentationController?.sourceRect = sourceView.bounds

在 iPad 上显示此 alertController 会按预期显示弹出窗口,弹出窗口箭头的尖端按预期位于 sourceView 的正中心。但是,这掩盖了我sourceView的部分内容。有什么我可以做的,内容不会被覆盖吗?例如,如果箭头指向下方,则箭头尖端将位于我的 sourceView 的顶部。如果箭头指向上方,则箭头尖端将位于我的 sourceView 的底部。我可以操纵 sourceRect,但我无法提前知道箭头的方向。

箭头应该指向sourceRect相对于sourceView的外部。当您将 sourceView.bounds 作为 sourceRect 时,它应该是整个源视图。所以不应该重叠。

在那里设置一个断点并单步执行并验证一切是否如您所愿。