没有箭头无法定位弹出框

Posted

技术标签:

【中文标题】没有箭头无法定位弹出框【英文标题】:Not able to position popover without the arrow 【发布时间】:2018-03-20 14:43:43 【问题描述】:

当用户单击导航栏标题(标签 + 图像)时,我将弹出框(呈现为弹出框)显示为下拉菜单。我无法将导航栏标题设置为弹出框的锚视图。所以对于锚点视图,我添加了一个清晰的 1x1 按钮,它位于导航栏的正下方(button.top = safe area.top)

我可以通过更改 sourceRect 中的 y 值来沿 y 轴定位弹出框。

    popover?.sourceRect = CGRect(x: 0, y: -10, width: 1, height: 1)

它看起来不错,只是我不希望弹出窗口中的箭头。所以我添加了这行代码。

    popover?.permittedArrowDirections = UIPopoverArrowDirection(rawValue: 0)

现在,我无法正确定位弹出框。我在 sourceRect 中指定的 y 值无关紧要,弹出框保持在同一个位置。

我做错了什么?

谢谢。

【问题讨论】:

看起来您没有考虑导航栏。我没有看到您的 sourceView 值,但我认为它是视图控制器的视图,这可以解释差异。您也可以减去导航栏的高度,这应该得到您想要的。 【参考方案1】:

问题是那不是如何压制箭头。正确的方法是提供一个不绘制箭头的自定义 UIPopoverBackgroundView。

但是最好不要这样做。弹出框有箭头。如果您不想要箭头,请不要使用弹出框。改为编写自定义呈现的视图控制器。

【讨论】:

以上是关于没有箭头无法定位弹出框的主要内容,如果未能解决你的问题,请参考以下文章

WPF Popup弹出框箭头自动定位效果

updatepanel 里面放ASPxGridView,使用RegisterClientScriptBlock方法,弹出框弹不出

隐藏弹出框控制器

js弹出框对话框提示框弹窗总结

js弹出框对话框提示框弹窗总结

(转)js弹出框对话框提示框弹窗总结