it-roy-ru.com

iOS 11 Дополнительное верхнее пространство в UITableView

Когда я обновил свое приложение в iOS 11 SDK, TableView начал вести себя странно, он добавляет дополнительное верхнее пространство, но на самом деле это дополнительное пространство для самой ячейки, но оно не отображается, пожалуйста, просмотрите прикрепленное изображение до обновления ios 11 и после .Спасибо!

 this is after ios 11 update

 Before ios 11

3
Lekve

Установите новое свойство contentInsetAdjustmentBehavior в вашем коде, это решит проблему.

if #available(iOS 11.0, *) {
    collectionView.contentInsetAdjustmentBehavior = .never
}

В iOS 11 добавлено новое свойство в UIScrollView, которое называется contentInsetAdjustmentBehavior , чтобы определить смещение содержимого

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

23
BLC

Я не знаю почему, но когда я добавляю табличное представление программно, это место появляется. Все, что вам нужно, это вернуть пустое представление в viewForHeaderInSection

 func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    return UIView()
}

Если вы хотите ноль места, добавьте его тоже,

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return 0.01
}

Также я понял, что ошибка появляется только в Swift4.

6
user5717376

только случилось на iOS 11 для меня, мое исправление:

self.tableView.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, CGFLOAT_MIN)];

ИЛИ ЖЕ 

self.tableView.tableHeaderView = UIView(frame: CGRect(x:0,y:0,width:0,height:CGFLOAT_MIN))
0
Ben Kax