【问题标题】:iOS Popover Is Displaying On TextViewiOS Popover 显示在 TextView 上
【发布时间】:2015-10-09 23:02:24
【问题描述】:

我已将弹出框实现为 UIViewController 演示文稿。我使用 Popover 和 UIPopoverPresentationController 的模态展示风格作为主视图。

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

我的问题是弹出框显示在它们锚定到的 TextView 上。

例如:

这是我在故事板上连接 TextView 和弹出框的方式:

有谁知道为什么弹出框指向这个 TextView 的左上角?这在 iOS 8 上运行良好,但在 iOS9 中弹出窗口略有变化。

【问题讨论】:

    标签: ios segue uipopover


    【解决方案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。希望这可以帮助任何有类似问题的人!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-14
      • 1970-01-01
      • 2019-07-09
      • 2021-09-11
      • 1970-01-01
      • 2015-12-19
      相关资源
      最近更新 更多