Я представляю UISearchController
из моего контроллера, встроенного в контроллер навигации. Появляется анимация по умолчанию, где окно поиска падает сверху вниз на панели навигации:
Это не очень хороший UX в моем случае, потому что я представляю поиск, когда пользователь вступает в UITextField
в середине экрана. То, что я хотел бы сделать, это иметь float UITextField
сверху и преобразовать в поле поиска, но я не могу понять, как это сделать.
Это то, что у меня есть:
class PlacesSearchController: UISearchController, UISearchBarDelegate {
convenience init(delegate: PlacesAutocompleteViewControllerDelegate) {
let tableViewController = PlacesAutocompleteContainer(
delegate: delegate
)
self.init(searchResultsController: tableViewController)
self.searchResultsUpdater = tableViewController
self.hidesNavigationBarDuringPresentation = false
self.definesPresentationContext = true
self.searchBar.placeholder = searchBarPlaceholder
}
}
private extension ShowAddressViewController {
@objc func streetAddressTextFieldEditingDidBegin() {
present(placesSearchController, animated: true, completion: nil)
}
}
Фактически вы можете загрузить и запустить пример приложения, которое делает это: https://expirebox.com/download/a105093cea111da24b310a35179e04dc.html
Вместо поиска, снижающегося сверху, я надеюсь, что текстовое поле выйдет на навигационную панель. То, что Im after - тот же эффект, что и в приложении iOS 11 File:
Он имеет текстовое поле в середине экрана, а затем анимируется до панели навигации, когда вы нажимаете на него. В моем случае tho текстовое поле является более низким на экране, а не изначально частью навигационной панели.