我已将popovers实现为UIViewController演示文稿。我使用Popover和UIPopoverPresentationController的模态表示样式作为主视图。
let popoverViewController = segue.destinationViewController as! SearchTableViewController
self.searchTableViewController = popoverViewController
popoverViewController.modalPresentationStyle = UIModalPresentationStyle.Popover
popoverViewController.popoverPresentationController!.delegate = self
我的问题是,弹出窗口正在显示在它们所锚定的TextView上。
例如:
以下是我在故事板上连接TextView和popover的方法:
有没有人知道为什么popover指向此TextView的左上角?这在iOS 8上运行良好,但在iOS9中,弹出窗口略有改变。
答案 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。希望这可以帮助任何有类似问题的人!