Подтвердить что ты не робот

UITableView дополнительное пространство внизу

У моего стола есть дополнительное пространство внизу, как вы видите на картинке:

Все строки в таблицеView имеют фиксированную высоту 71pt.

enter image description here

4b9b3361

Ответ 1

Хорошо, я понял.

"Настроить списки прокрутки" была отмечена на моем viewController (а не на моем табличном представлении).

Вот ответ с подробным объяснением

Ответ 2

В моем случае это было связано с нижним колонтитулом высоты 18 по умолчанию в нижней части UITableView. Установив его на 1, удалите дополнительное пространство внизу.

Ответ 3

У меня была эта проблема, когда я перевернул UITableView вверх дном для экрана обмена чатами.

Прежде чем я перевернул представление таблицы, вставка содержимого оставила пустое место сверху, так что, когда мы прокручивали весь путь, содержимое не было перекрыто навигационной панелью. Как только я перевернул его, вставка была перенесена на дно.

Измените свои "вставки содержимого" на "Никогда" в "Инспекторе размеров" вашего UITableView, чтобы избавиться от этого места в конце.

Ответ 4

В моем случае tableView был создан программно, и мне пришлось установить tableView.estimatedRowHeight чтобы пространство исчезло

Ответ 5

в этом случае вы можете дать tableview нижний пробел 0 для его superview, и он будет работать, я думаю, или вы можете сделать,

tableView.tableFooterView = UIView();

или вы можете сделать, как показано ниже,

Нижнее значение должно быть 1,0.

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger )section {
    if(section == 0) {
       return 6;
    } else {
       return 1.0;
    }
}

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger )section {
    return 5.0;
}

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger )section {
    return [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
}

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger )section {
    return [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
}

Ответ 6

Вот как это можно легко устранить через Storyboard (iOS 11):

Выберите "Просмотр таблицы" > "Инспектор размеров" > "Вставки содержимого: никогда"

Ответ 7

Если имеется встроенный навигационный контроллер, проверка "показывает панель инструментов" создает нижний интервал в контроллере вида. Просто уберите галочку.

enter image description here

Ответ 8

@urgentx answer сделал то, что хотел, но не до конца. Я нахожусь в подобной ситуации (перевернутый UITableView для приложения чата), однако их предложение полностью отключает поведение безопасной области, что нежелательно на устройствах, таких как iPhone X, потому что это означает, что представление таблицы будет обрезано как индикатором дома, так и любым другим. верхние панели навигации.

Я сделал следующее, чтобы таблица все еще правильно избегала безопасных областей при перевернутом виде:

override func viewDidLoad() {
    super.viewDidLoad()
    self.automaticallyAdjustsScrollViewInsets = false
    self.tableView.contentInsetAdjustmentBehavior = .never
}

а потом:

override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews()
    //fetch the safe area in layoutSubviews since this it possible that they can change when the device is rotated
    let safeArea = self.tableView.safeAreaInsets
    //insets are **flipped** because the tableview is flipped over its Y-axis!
    self.tableView.contentInset = .init(top: safeArea.bottom, left: 0, bottom: safeArea.top, right: 0)
}

По сути, это повторяет contentInsetAdjustmentBehavior =.automatic поведение, но со вставками, перевернутыми по оси Y.