У моего стола есть дополнительное пространство внизу, как вы видите на картинке:
Все строки в таблицеView имеют фиксированную высоту 71pt.
У моего стола есть дополнительное пространство внизу, как вы видите на картинке:
Все строки в таблицеView имеют фиксированную высоту 71pt.
Хорошо, я понял.
"Настроить списки прокрутки" была отмечена на моем viewController (а не на моем табличном представлении).
Вот ответ с подробным объяснением
В моем случае это было связано с нижним колонтитулом высоты 18 по умолчанию в нижней части UITableView. Установив его на 1, удалите дополнительное пространство внизу.
У меня была эта проблема, когда я перевернул UITableView вверх дном для экрана обмена чатами.
Прежде чем я перевернул представление таблицы, вставка содержимого оставила пустое место сверху, так что, когда мы прокручивали весь путь, содержимое не было перекрыто навигационной панелью. Как только я перевернул его, вставка была перенесена на дно.
Измените свои "вставки содержимого" на "Никогда" в "Инспекторе размеров" вашего UITableView, чтобы избавиться от этого места в конце.
В моем случае tableView был создан программно, и мне пришлось установить tableView.estimatedRowHeight
чтобы пространство исчезло
в этом случае вы можете дать 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)];
}
Вот как это можно легко устранить через Storyboard (iOS 11):
Выберите "Просмотр таблицы" > "Инспектор размеров" > "Вставки содержимого: никогда"
Если имеется встроенный навигационный контроллер, проверка "показывает панель инструментов" создает нижний интервал в контроллере вида. Просто уберите галочку.
@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.