iOS Popover отображается в TextView
Я реализовал всплывающие окна в виде презентаций UIViewController. Я использую модальный стиль представления Popover и UIPopoverPresentationController в качестве основного вида.
let popoverViewController = segue.destinationViewController as! SearchTableViewController
self.searchTableViewController = popoverViewController
popoverViewController.modalPresentationStyle = UIModalPresentationStyle.Popover
popoverViewController.popoverPresentationController!.delegate = self
Моя проблема в том, что всплывающие окна отображаются поверх TextViews, к которым они привязаны.
Пример:
Вот как у меня есть TextView и всплывающее окно на раскадровке:
У кого-нибудь есть идея, почему поповер указывает на верхний левый угол этого TextView? Это работало нормально с iOS 8, но всплывающие окна немного изменились в iOS9.
1 ответ
Я не уверен, почему это происходит, но быстрое решение состоит в том, чтобы переместить кадр туда, куда вы хотите. Я сделал это с кодом ниже:
let absoluteframe = patientTextField!.convertRect(patientTextField!.frame, fromView: self.scrollView)
popoverViewController.popoverPresentationController!.sourceRect = CGRectMake(absoluteframe.minX + 60,absoluteframe.minY + 20,0,0)
Во-первых, вам нужно получить фрейм для элемента, к которому привязано всплывающее окно. Затем вы можете установить sourceRect, обновив положение прямоугольника текущими значениями x и y. Надеюсь, что это помогает любому с подобными проблемами!