【问题标题】:UIPopovercontroller detached from UIButtonUIPopovercontroller 与 UIButton 分离
【发布时间】:2011-06-23 21:42:14
【问题描述】:

我遇到了一个分离的 UIPopovercontroller 的问题,我希望有人以前见过这种行为。

我的应用程序以横向模式运行,并使用 presentPopoverFromRect 调用提供了许多弹出框元素。有些是从顶视图中启动的,而另一些是从隐藏在显示器深处的视图中呈现的。如果从 iPad 显示屏的上 2/3 处显示弹出框,则弹出框似乎工作正常,但是当尝试从显示屏的底部 1/3 启动弹出框时,弹出框显示为与 UIButton 分离。 x 坐标似乎是正确的,但弹出框的 y 坐标往往位于 iPad 屏幕的中间或顶部。

我通过在显示器的下 1/3 处创建一个 CGRect 对象来尝试使用固定位置呈现弹出框,但是当 iPad 渲染弹出框时,它要么在屏幕的上 2/3 处渲染弹出框视图或屏幕的最底部(如果我将 CGRect 值强制设置为较大的 y 值)。

在这一点上,我没有想法,希望论坛上的人已经看到了这一点,或者可以就尝试什么提出建议。

感谢您的任何帮助, 韦斯

【问题讨论】:

  • 您是否将 popoverArrowDirection 设置为使用任何方向?
  • 嗨内文,感谢您的回复。是的,箭头方向设置为 UIPopoverArrowDirectionAny。

标签: xcode ipad ios uibutton uipopovercontroller


【解决方案1】:

我能够解决我的问题,并认为我会分享我的解决方案,以防其他人遇到同样的问题。

解决方案是在调用 presentPopoverFromRect 之前添加一个设置弹出框大小的调用。

[mySettingsPopoverController setPopoverContentSize:CGSizeMake(320, 320) animated:YES];
[mySettingsPopoverController presentPopoverFromRect:sender.frame inView:self.navigationButtonsView permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

之前,我没有在呈现弹出框之前设置弹出框内容大小。在 popover 的 viewcontroller 的 viewDidAppear 方法中,我将 popover 的大小调整为 popover 中的 tableview 的大小。显然,通过在呈现弹出框之前不设置弹出框内容大小,您会得到未定义的行为,包括让弹出框与它应该附加到的元素分离的可能性。

韦斯

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 2013-04-25
    • 2012-10-01
    相关资源
    最近更新 更多