Я пытаюсь создать UISearchController и поместить его панель поиска в представление контейнера. searchView
это розетка. Вот мой код:
let searchController = UISearchController(searchResultsController: nil)
self.searchController = searchController
let searchBarBackground = UIImage.roundedImage(UIImage.image(with: #colorLiteral(red: 0.5568627451, green: 0.5568627451, blue: 0.5764705882, alpha: 0.2), size: size), cornerRadius: cornerRadius)
searchController.searchBar.setSearchFieldBackgroundImage(searchBarBackground, for: .normal)
searchController.searchBar.searchTextPositionAdjustment = UIOffsetMake(8.0, 0.0)
searchController.searchBar.searchBarStyle = .minimal
searchController.searchBar.barStyle = .black
searchController.searchBar.delegate = self
searchView.addSubview(searchController.searchBar)
Я не могу понять, как сделать панель поиска, чтобы сохранить поля из основного вида. Когда я пытаюсь добавить ограничения к представлению контейнера и добавить панель поиска в качестве подпредставления, панель поиска не учитывает конечные ограничения.
Даже ручная настройка рамки панели поиска, равная границам просмотра контента в viewDidLayoutSubviews
, не помогает. Это выглядит нормально только тогда, когда я устанавливаю начальные и конечные ограничения на 0 без учета полей суперпредставления. Но у него только 8pt полей с боков, мне нужно больше.
Как мне этого добиться? Может быть, можно изменить поле по умолчанию для панели поиска? Благодаря.
Снимок экрана из IB, если необходимо (это просто ограничения для поля со значением -8 для компенсации внутренних полей панели поиска):