Как удалить пространство верхнего и нижнего колонтитула из UITableView - PullRequest
22 голосов
/ 17 июня 2011

У меня есть UITableView в сгруппированном стиле, и только один раздел. Однако есть некоторое пустое пространство над и под табличным представлением, которое отображается, когда пользователь прокручивает слишком далеко. Как я могу удалить это пустое место?

Ответы [ 9 ]

58 голосов
/ 17 июня 2011

Вы можете сделать это, изменив свойство contentInset, которое табличное представление наследует от UIScrollView.

self.tableView.contentInset = UIEdgeInsetsMake(-20, 0, -20, 0);

При этом верх и низ коснутся края.

3 голосов
/ 24 июля 2013

Добавьте этот код:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    return 0;
}

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
    return 0;
}
1 голос
/ 17 июня 2011

На самом деле этот вопрос ответил на мой вопрос.

Сокращение пространства между разделами UITableView.

0 голосов
/ 23 октября 2018

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

0 голосов
/ 15 октября 2018

Этот ответ приходит довольно поздно, но я надеюсь, что он кому-нибудь поможет.

Место есть из-за свойства 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

0 голосов
/ 11 мая 2016

Снимите флажок Расширить края под верхней панелью.

enter image description here

0 голосов
/ 26 октября 2015

вы также можете использовать этот код для удаления пробела между первой ячейкой uitableview ..

 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
 {
    return 0.002f;// set this...
 }
0 голосов
/ 22 мая 2014

UIView можно вставить вверху и внизу таблицы (перетаскивание). Установите их свойства как прозрачные и высотой 1 пикс. Это необходимо для удаления дополнительных отступов перед ячейками.

0 голосов
/ 15 марта 2013

Используйте свойство bounces UIScrollView:

[yourTableView setBounces:NO];

Это удалит лишние отступы сверху и снизу вашего UITableView. На самом деле, он просто отключит представление прокрутки табличного представления, чтобы прокрутить границу содержимого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...