Печатание на панели поиска макетов разрывов - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть tableView:

tableView = UITableView()
view.addSubview(tableView)

tableView.translatesAutoresizingMaskIntoConstraints = false
let constraints = [tableView.topAnchor.constraint(equalTo: view.topAnchor), tableView.leadingAnchor.constraint(equalTo: view.leadingAnchor), tableView.trailingAnchor.constraint(equalTo: view.trailingAnchor), tableView.heightAnchor.constraint(equalToConstant: view.frame.height * 0.6)]
NSLayoutConstraint.activate(constraints)

И мой searchController выглядит так:

func setupSearchController() {
    searchController = UISearchController(searchResultsController: nil)
    searchController.searchResultsUpdater = self
    searchController.obscuresBackgroundDuringPresentation = false
    searchController.searchBar.placeholder = "Search for a candy"
    navigationItem.searchController = searchController
    definesPresentationContext = true
}

При первой загрузке все нормально. Но когда я нажимаю на строку поиска, чтобы напечатать там, моя панель поиска перемещается вверх, панель навигации становится меньше, и это нарушает мой макет, и между tableView и searchBar появляется пробел:

enter image description here

Как я могу улучшить свои ограничения для перемещения вверх и вниз по моему табличному представлению при изменении размеров панели навигации?

1 Ответ

0 голосов
/ 10 сентября 2018

Вы должны изменить верхнее ограничение таблицы. Попробуйте заменить это ограничение 2

tableView.topAnchor.constraint(equalTo: searchController.searchBar.bottomAnchor), 
tableView.topAnchor.constraint(equalTo: view.topAnchor)

С этим

tableView.topAnchor.constraint(equalTo: view.topAnchor)

Автоматическая настройка вставки контента сделает все остальное.

Обратите внимание, что в списке ограничений табличного представления нет ограничения на переднее / горизонтальное положение. Предлагаю также добавить это ограничение

tableView.leadingAnchor.constraint(equalTo: view.leadingAnchor)
...