Я не могу удалить пробел над первой строкой таблицы при тестировании с iOS 10.3.Я перепробовал все решения, предложенные в других сообщениях, такие как automaticallyAdjustsScrollViewInsets
, добавил иерархическое представление над UITableView в иерархии, например, здесь - но все безуспешно.
Вот настройка и сценарий.
У меня есть UIViewController, который имеет UITableView.Называя это V1.он встроен в навигационный контроллер.
Я добавляю UISearchController в viewDidLoad () к заголовку таблицы.Я не устанавливаю никаких ограничений, не контролирующих какой-либо макет программно.
self.searchController.obscuresBackgroundDuringPresentation = false
self.searchController.hidesNavigationBarDuringPresentation = true
if #available(iOS 11.0, *) {
self.searchController.searchBar.delegate = self
self.navigationItem.searchController = self.searchController
self.navigationController?.navigationBar.prefersLargeTitles = true
self.searchController.searchBar.scopeButtonTitles = ["All","A","B"]
self.navigationItem.hidesSearchBarWhenScrolling = true
} else {
self.searchController.searchBar.delegate = self
self.searchController.searchBar.scopeButtonTitles = ["All","A","B"]
tableView.tableHeaderView = searchController.searchBar
self.searchController.searchBar.sizeToFit()
}
У меня есть другой виртуальный канал (таблица), из которого я собираю данные с использованием функции раскрутки.Называя его V2.
я делаю следующее в методе раскрутки
DispatchQueue.main.async {
self.searchController.searchBar.text = searchText
self.searchController.isActive = true
let scope = self.searchController.searchBar.scopeButtonTitles![self.searchController.searchBar.selectedScopeButtonIndex]
self.filterContentForSearchText(searchText, scope: scope)
}
Сценарий 1 - работает нормально 1. Открытие V1 отображает строки и строку поиска точно в заголовке таблицы.2. Нажмите на кнопку на панели, которая открывает V2. 3. Выберите значение и верните. 4. Возвращаемое значение присваивается панели поиска, а панель поиска открывается на панели навигации. 5 В таблице показаны строки, соответствующие возвращенному значению из V2. Между первой строкой и пропуском нет пропусков.Строка поиска
Сценарий 2 - сбой.1. Открытие V1 отображает строки и строку поиска точно в заголовке таблицы.2. Прокрутите строки вверх так, чтобы заголовок проходил под панелью навигации. 3. Нажмите на кнопку панели, которая открывает V2. 4. Выберите значение и нажмите 5. Возвращаемое значение присваивается панели поиска, и панель поиска открывается на панели навигации. 5 В таблице показаны строки, которыесоответствует возвращаемое значение из V2
проблема в этом сценарии, если между первой строкой и строкой поиска появляется пробел.если я нажму кнопку «Отмена» в строке поиска, то панель поиска будет восстановлена в верхней части таблицы, но между панелью поиска, т. е. строкой заголовка и панелью навигации, будет пробел.
Я заметил, что происхождение табличного представления составляет -88, когда происходит выше.
Я попытался установить ограничение верхней части табличного представления для суперпредставления, то есть вида и нижней части верхнего макета руководства.
В чем может быть проблема?скриншоты прилагаются.
- Снимок экрана, показывающий разрыв между активным контроллером поиска и первой ячейкой.
![enter image description here](https://i.stack.imgur.com/GpBt1.png)
- Снимок экрана, показывающий разрыв между неактивным контроллер поиска и первая ячейка.
![enter image description here](https://i.stack.imgur.com/sEc2Q.png)
- Визуальный отладчик, отображающий представление ViewController оранжевым цветом, представление таблицы зеленым цветом и представление заголовка плоской сливы.Существует вид выше первой ячейки, которую я выбрал.Не знаю, что это такое, но вызывает ли это проблему?Вид на нижний стол тоже.
![enter image description here](https://i.stack.imgur.com/Pxb2w.png)
Спасибо, Ашиш