Я долгое время искал поисковую панель UISearchController. Мне нужна функция поиска, которая будет реализована в виде таблицы, но в отличие от обычных методов я не помещал строку поиска в виде заголовка таблицы. Вместо этого я создал UIView
и добавил панель поиска в качестве подпрограммы к ней. UIView
, который действует как контейнер для панели поиска, имеет свои ограничения, правильно установленные на раскадровке с автоматической компоновкой.UISearchController SearchBar смещается во время вращения
Вот мои коды. Обратите внимание, что я сделал это программно, потому что UISearchDisplayController и UISearchBar устарели с iOS 8 в пользу UISearchController и еще не пришли в UIKit.
searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
searchController.searchBar.autoresizingMask = .FlexibleRightMargin
searchController.searchBar.delegate = self
definesPresentationContext = true
self.searchContainerView.addSubview(searchController.searchBar)
Однако, я заметил одно странное поведение панели поиска во время вращения. Когда он активен в режиме «Портрет», я поворачиваю симулятор на «Пейзаж» и нажимаю «Отмена», панель поиска возвращается к «Портретная ширина».
То же самое происходит с точностью до наоборот тоже.
Я был бы признателен за любые идеи или, может быть, некоторые намеки в сторону правильного направления, чтобы решить эту проблему, как я был на этом в течение нескольких дней по крайней мере. Большое спасибо
Как вы можете изменить ширину. Вы можете установить Frame! –
Борясь с этим некоторое время. Спасибо вам за публикацию! Кроме того, вы можете просто выполнить 'searchController.searchBar.sizeToFit()' вместо 'self.searchController.searchBar.frame.size.width = self.view.frame.size.width', по крайней мере, это сработало для меня. –
это единственное, что сработало для меня после многих попыток! Спасибо!! – user2704776