У меня есть контроллер просмотра, открытый из Popover segue - на iPhone это отображает это как полноэкранный просмотрщик (в основном модально). На iPad он открывается как popover.Swift 3: UISearchBar в Popover ViewController отображается выше, чем ожидалось (на iPad)
При открытии вида на iPad крепление для яхты становится шире, чем вид на попкор. Это не происходит ни на одном из размеров экрана iPhone - только iPad (как Popover).
Если я принести UISearchBar сосредоточиться (нажмите на текстовое поле) вопрос решает сам, пока вид не будет снова открыта:
UISearchBar является добавляется программно в UIView желаемых размеров.
Вот код для инициализации SearchController
self.resultSearchController = ({
let controller = UISearchController(searchResultsController: nil)
controller.searchResultsUpdater = self
controller.dimsBackgroundDuringPresentation = false
controller.searchBar.sizeToFit()
controller.definesPresentationContext = false;
searchBarView.addSubview(controller.searchBar)
return controller
})()
Я попытался удалить .sizeToFit() и вместо проклейки, основанный на CGSize
controller.searchBar.sizeThatFits(CGSize(width: 375, height: 44)
это не работает Однако. Я также попытался вызвать view.setNeedsLayout() и view.LayoutIfNeeded(). Ни один из них не имеет никакого эффекта.
Я мог бы решить эту проблему, сделав UISearchBar активным в viewDidLoad, но я искал решение, менее подходящее.
Спасибо!