Панель поиска UISearchController перекрывает первую ячейку таблицы

Я использую UISearchController, а UISearchBar также имеет панель видимости. Панель поиска добавляется как поднаблюжение к UIView, которое находится выше UItableView. Я сделал это так, так как я хочу, чтобы панель поиска всегда отображалась даже при прокрутке таблицы.

Проблема заключается в том, что область видимости перекрывает первую ячейку таблицы

StoryBoard

enter image description here

Область видимости, перекрывающая ячейку tableview

enter image description here

Как я могу предотвратить это перекрытие?, я не могу отобразить панель поиска в панели навигации, так как область видимости при размещении в навигационной панели не отображается.

Ответ 1

Это сработало для меня:

Наличие контроллера отображения поиска и SearchBar в заголовке таблицы. Добавьте heightForHeaderInSection в свой TableViewController.

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    return 44; //I used the 44, the height of SearchBar
}

В вашем случае вам также нужно будет добавить высоту панели. Теперь он всегда будет поддерживать базовую высоту.

Ответ 2

Это сработало для меня:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    if (self.searchController.active) {
        return 44; // with scope
    } else {
        return 0; // no scope
    }
}

Ответ 3

Добавьте панель поиска и представление таблицы в UIViewController, как показано на рисунке ниже. Не перекрывайте панель поиска табличным представлением. Я использую это в своем приложении и отлично работаю для меня.

enter image description here