iOS Popover在TextView上显示

时间:2015-10-09 23:02:24

标签: ios segue uipopover

我已将popovers实现为UIViewController演示文稿。我使用Popover和UIPopoverPresentationController的模态表示样式作为主视图。

let popoverViewController = segue.destinationViewController as! SearchTableViewController
self.searchTableViewController = popoverViewController
popoverViewController.modalPresentationStyle = UIModalPresentationStyle.Popover
popoverViewController.popoverPresentationController!.delegate = self

我的问题是,弹出窗口正在显示在它们所锚定的TextView上。

例如:

enter image description here

以下是我在故事板上连接TextView和popover的方法:

enter image description here

enter image description here

有没有人知道为什么popover指向此TextView的左上角?这在iOS 8上运行良好,但在iOS9中,弹出窗口略有改变。

1 个答案:

答案 0 :(得分:1)

我不确定为什么会这样,但快速解决方案是将框架移动到您想要的位置。我用下面的代码做了这个:

let absoluteframe = patientTextField!.convertRect(patientTextField!.frame, fromView: self.scrollView)
popoverViewController.popoverPresentationController!.sourceRect = CGRectMake(absoluteframe.minX + 60,absoluteframe.minY + 20,0,0)

首先,您需要获取弹出窗口固定到的项目的框架。然后,您可以通过使用当前x和y值更新矩形位置来设置sourceRect。希望这可以帮助任何有类似问题的人!