【问题标题】:width and height in presentPopoverFromRect?presentPopoverFromRect 中的宽度和高度?
【发布时间】:2011-06-24 10:29:33
【问题描述】:

presentPopoverFromRect:inView:permittedArrowDirections:animated:UIPopoverViewController的方法中,对于“presentPopoverFromRect”,我理解的是“x" 和 "y" 是它的锚点,但是 "width" 和 "@ 987654327@" 参数可以吗?

我通过设置不同的值来玩它们,结果非常混乱。

【问题讨论】:

  • 锚点指向一个矩形,而不是一个点。你可以为宽度和高度指定 0。
  • 不,您不能指定 0,否则您会收到警告,传入此方法的矩形必须具有非零宽度和高度。这将是未来版本中的一个例外但您可以指定 FLT_MIN。

标签: objective-c ipad ios4 uipopovercontroller


【解决方案1】:

UIPopoverController 对象上调用 setPopoverContentSize:animated: 方法,这将设置弹出框的高度和宽度。

UIPopoverController 的位置由presentPopoverFromRect:inView:permittedArrowDirections:animated: 方法控制。

【讨论】:

  • 感谢您的回复。我想知道当您可以在“setPopoverContentSize:animated:”中设置弹出框的高度和宽度时,您是否可以告诉我“presentPopoverFromRect”中的“宽度”和“高度”在做什么
  • 我真的不确定这些控件的作用。我已经对它们进行了试验,但是当我在模拟器或 iPad 上构建和运行应用程序时,没有看到任何更改。如果回答有帮助,请点击绿色复选标记表示我已回答!谢谢。
【解决方案2】:

这令人困惑,Apple 文档并没有使其更清晰:

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIPopoverController_class/Reference/Reference.html

ott 让您朝着正确的方向前进... presentPopoverFromRect 使用 CGRect 对象作为其锚点。我通过阅读此处的其他帖子了解到,该矩形的 CENTER 用作 UIPopoverController 的锚点位置,而不是它的 x,y 坐标。虽然,我不确定这是否会根据 allowedArrowDirections (我为此使用零)而变化。所有苹果文档都说“在视图中锚定弹出窗口的矩形。”

为了让它几乎像点坐标一样运行,我一直使用 width=1 和 height=1 作为我的锚矩形大小。

希望有帮助!

【讨论】:

  • 对于视图中心的小矩形,您可以使用CGRectMake(CGRectGetMidX(self.view.bounds) - 1.f, CGRectGetMidY(self.view.bounds) - 1.f, 2.f, 2.f);,对于视图中心的大矩形,只需 self.view.bounds
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-19
  • 2015-02-15
  • 1970-01-01
  • 1970-01-01
  • 2016-02-27
  • 2016-06-15
相关资源
最近更新 更多