popover箭头方向无法确定

Posted

技术标签:

【中文标题】popover箭头方向无法确定【英文标题】:The popover arrow direction cannot be determined 【发布时间】:2012-03-26 22:21:56 【问题描述】:

我正在使用包含一些输入字段的popover。由于 ios 键盘覆盖了大屏幕区域,有时我需要更正弹出窗口的位置(通过移动其目标并在 popover 上调用 -presentPopoverFromView:targetView)。我假设我无法精确确定弹出窗口的视图矩形,但有了箭头方向和内容大小,我可以近似它的当前位置。

问题是,即使弹出窗口清晰可见,我也经常遇到未知方向 (UIPopoverArrowDirectionUnknown)。

在 iOS 5.1 UIKit.framework 中,头文件UIPopoverController.h 我们可以读到我们可以得到popover arrow 的当前方向(上、下、左、右、未知之一)。唯一的条件是需要提供popover

 /* Returns the direction the arrow is pointing on a presented popover. Before     presentation, this returns UIPopoverArrowDirectionUnknown.
  */
 @property (nonatomic, readonly) UIPopoverArrowDirection popoverArrowDirection;

我们可以确定弹出框是否带有getter isPopoverVisible

 /* Returns whether the popover is visible (presented) or not.
  */
 @property (nonatomic, readonly, getter=isPopoverVisible) BOOL popoverVisible;

但尽管我可以看到弹出箭头向上或向下等以及myPopover.isPopoverVisible == YES,但箭头方向仍然是myPopover.popoverArrowDirection == UIPopoverArrowDirectionUnknown

popover 提供者:

[self presentPopoverFromRect:sourceView.frame inView:sourceView.superview
    permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

编辑(解决方案)

我的设备 (iPad) 上安装了 iOS 5.0.1。编译目标是 5.1。将设备更新到 5.1 后,问题完全消失了。

【问题讨论】:

如果您已经解决了问题,请发布答案并将其标记为已接受,这样问题就不会显示为未回答。 @PartiallyFinite,谢谢。学习... 【参考方案1】:

我的设备 (iPad) 上安装了 iOS 5.0.1。编译目标是 5.1。将设备更新到 5.1 后,问题完全消失了。

【讨论】:

以上是关于popover箭头方向无法确定的主要内容,如果未能解决你的问题,请参考以下文章

如何删除 iPad 的 Popover 箭头及其边框

popover带箭头弹框

创建没有箭头并在 UIViewController 中居中的 PopOver

用于在滚动视图中跟踪对象的 Popover 箭头

Bootstrap 3 Popover 箭头和框定位

带有矩形角且不带箭头的popover presentviewcontroller