Вот как я добавляю UITableView:
tableView = UITableView()
tableView.dataSource = self
tableView.delegate = self
tableView.register(UINib(nibName: "TableViewCell", bundle: nil), forCellReuseIdentifier: "Cell")
tableView.rowHeight = 60.0
tableView.tableFooterView = UIView()
view.addSubview(tableView)
tableView.translatesAutoresizingMaskIntoConstraints = false
tableViewHeightAnchor = tableView.heightAnchor.constraint(equalToConstant: 0)
let constraints = [tableView.topAnchor.constraint(equalTo: view.topAnchor), tableView.leadingAnchor.constraint(equalTo: view.leadingAnchor), tableView.trailingAnchor.constraint(equalTo: view.trailingAnchor), tableViewHeightAnchor!]
NSLayoutConstraint.activate(constraints)
Особенно важна эта часть:
tableView.topAnchor.constraint(equalTo: view.topAnchor)
до того, как я попытался подключить его к нижней части панели поиска моего UISearchController, но в этом случае он падал.
а по моему
func updateSearchResults(for searchController: UISearchController) {
filterContentForSearchText(searchController.searchBar.text!)
tableView.reloadData()
UIView.animate(withDuration: 0.6) {
self.tableViewHeightAnchor.constant = self.tableView.contentSize.height
}
}
Я настраивал якорь высоты и устанавливал его равным contentSize таблицы.
но у меня проблема:
Когда отображается только 1-2 строки, я вообще не вижу свой tableView! Я вижу это только тогда, когда добавляю +200.0 к contentSize, но это решение очень плохое и его трудно контролировать, поскольку в этом случае оно отображалось некорректно.
Как я могу это исправить? Это мой первый раз, когда я пытаюсь сделать весь свой дизайн в коде, и это иногда сбивает с толку. Может быть, кто-то может объяснить мне, что там не так