Этот ответ приходит довольно поздно, но я надеюсь, что он кому-нибудь поможет.
Место есть из-за свойства UITableView
tableHeaderView
. Если для свойства tableHeaderView
установлено значение nil
Apple, по умолчанию используется представление. Таким образом, способ обойти это - создать пустой вид с высотой, превышающей 0
. Установка этого параметра переопределяет представление по умолчанию, тем самым удаляя ненужное пространство.
Это можно сделать в раскадровке, перетащив вид на верхнюю часть tableView
, а затем установив высоту вида на значение 1
или выше.
Или это можно сделать программно с помощью следующего кода:
Objective-C:
CGRect frame = CGRectZero;
frame.size.height = CGFLOAT_MIN;
[self.tableView setTableHeaderView:[[UIView alloc] initWithFrame:frame]];
Swift:
var frame = CGRect.zero
frame.size.height = .leastNormalMagnitude
tableView.tableHeaderView = UIView(frame: frame)
Комментарии
Как уже отмечали другие, вы можете использовать это же решение для нижних колонтитулов.
Источники и благодарности
См. Документацию для получения более подробной информации о свойстве tableHeaderView
.
Спасибо @liushuaikobe за проверку использования наименьшего положительного нормального числа.
Мой оригинальный ответ: https://stackoverflow.com/a/22185534/2789144