UIAlertController popoverPresentationController涵盖了sourceView

时间:2019-02-01 04:39:38

标签: ios ipad uialertcontroller

我正在像这样设置UIAlertController的属性:

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

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

1 个答案:

答案 0 :(得分:2)

相对于sourceView,箭头应该指向sourceRect的外部。当将sourceView.bounds用作sourceRect时,应为整个源视图。因此不应重叠。

在此处设置一个断点,逐步检查并验证一切是否符合您的预期。