Я реализовал UISearchController для ViewController с таблицаView на нем, и теперь я столкнулся с проблемой странного поведения прокрутки tableView. После прокрутки tableView вниз и нажатия строки состояния для прокрутки назад к верхней части tableView не возвращается в правильное положение (прямо под панелью навигации). Похоже, он останавливает анимацию отскока на полпути. Однако после этого он возвращается к началу, если вы коснетесь tableView. Взгляните на это гифка, чтобы увидеть это своими глазами.
Проблема остается как на симуляторе, так и на реальном устройстве (iPhone7)
Это код, с помощью которого я устанавливаю searchController:
class MyViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, UISearchResultsUpdating {
@IBOutlet weak var tableView: UITableView!
var searchController = UISearchController(searchResultsController: nil)
override func viewDidLoad() {
searchController.searchResultsUpdater = self
searchController.obscuresBackgroundDuringPresentation = false
searchController.searchBar.placeholder = "Search..."
navigationItem.searchController = searchController
definesPresentationContext = true
}
...
}
Что может быть причиной такого поведения и как это исправить?





Может быть, пару вещей, чтобы попробовать:
Я помню, как установил ограничения макета на Супервью вместо помощи безопасной области с прокруткой моего tableView, когда ViewController был встроен в контроллер навигации.
Также добавление этого свойства в ViewController может помочь, если первое не поможет:
extendedLayoutIncludesOpaqueBars = true
Эти варианты решили проблему. И что интересно, это сработало только тогда, когда я сделал и то, и другое. Спасибо за помощь!