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
iPad的UIPopoverController“不能用`nil`调用”错误