UIPopOverController 出现在错误的地方

Posted

技术标签:

【中文标题】UIPopOverController 出现在错误的地方【英文标题】:UIPopOverController appears in wrong place 【发布时间】:2014-01-26 13:25:45 【问题描述】:

所以我有这个 UIButton,点击它会触发一个 UIPopOverController。

UIButton 位于 Bar Button Item 中,位于工具栏中,y 值为 960。 iPad 视图。

我的问题是,此按钮在屏幕顶部显示 PopOver,而同一工具栏上的另一个按钮正确显示 PopOver(方向向上)。

我尝试在工具栏上强制方向和更改按钮位置,但没有成功。我尝试了工具栏的框架值,但这只是从中间带来的。这是按钮操作的代码。

[self.popOverController setContentViewController:self.legendViewController];

[_popOverController presentPopoverFromRect:self.btnLegend.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES ];

我知道可能有几种实用的方法可以做到这一点。我开始认为这个特定的 UIButton 被诅咒了。

【问题讨论】:

【参考方案1】:

你应该试试条形按钮的呈现方式。

当使用presentPopoverFromRect:inView: 时,提供的框架通常是您的按钮(正如您所拥有的那样),但视图将是按钮超级视图(而不是根视图)。这是因为框架需要在提供的视图的坐标空间中修改某些内容

【讨论】:

以上是关于UIPopOverController 出现在错误的地方的主要内容,如果未能解决你的问题,请参考以下文章

当键盘出现时,UIPopoverController 在 iOS 7 上奇怪地移动

从 UIPopoverController 出现时关闭 PresentedViewController

UIPopoverController 的奇怪错误

iPad的UIPopoverController“不能用`nil`调用”错误

UIImagePickerController 通过 UIPopoverController

自动旋转时出现 UIPopOverController 问题