Мое приложение имеет UITableView
, который имеет переменное количество клеток внутри.
Как я могу добавить пустое (пустое) пространство с определенной высотой под UITableView
? Или в самом конце UITableView
? Так что после самой последней ячейки будет больше свободного места.
Добавить пустое (пустое) пространство под (в конце) UITableView
Ответ 1
Сделайте вкладку содержимого в виде таблицы:
let insets = UIEdgeInsets(top: 0, left: 0, bottom: 100, right: 0)
self.tableView.contentInset = insets
После того, как вы перейдете к последней ячейке, вы оставите пустое пространство под табличным представлением.
Ответ 2
Вы можете использовать tableView
Footer
для этого
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 100)];
[self.tableView setTableFooterView:view];
Ответ 3
2019. Честно говоря, это просто:
добавьте следующее в viewDidLoad
tableView.contentInset.bottom = 100
На самом деле, все, что нужно сделать.
override func viewDidLoad() {
super.viewDidLoad()
tableView.contentInset.bottom = 100
}
Ответ 4
Честно говоря, я не люблю слишком много возиться со вставками (особенно, если вы уже модифицируете их по другим причинам).
Решение, которое я нашел, состояло в том, чтобы переопределить tableView(_:heightForFooterInSection:)
и вернуть желаемую высоту пространства для последнего раздела tableView
:
override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
if section == lastSectionIndex {
return 30.0
}
return 0.001
}
Последнее значение 0.001
относится ко всем другим разделам, которые, в моем случае, не имеют нижнего колонтитула; таким образом, нижний колонтитул в других разделах отсутствует. Нет необходимости создавать дополнительные представления.
Ответ 5
Будьте осторожны с программной прокруткой и определением нижнего пробела:
Стоит учесть одну вещь: если вам случится использовать программную прокрутку к определенной ячейке в вашем tableView. Затем вам нужно добавить достаточное количество нижнего пространства, чтобы избежать уродливого эффекта scrolling-and-not-having-enough-bottom-space-causing-up-and-down-jumping-of-your-cells effect
(т.е. На самом деле все зависит на вашем коде прокрутки - я просто хотел упомянуть об этом).
Так что на самом деле было бы неплохо сделать ваше дополнительное пространство кратным вашему cellHeight (и если программная прокрутка добавит правильное значение, кратное вашему cellHeight как дополнительное пространство)...
Уже упомянутые решения короче моего решения. Но если вам нужна дополнительная настройка вашего нижнего пробела и если вам не нужен tableView-footerView для других целей, вы также можете использовать footerView для создания дополнительного нижнего пробела и выполнить:
let rowHeight = 70 // or whatever...
let nrOfCellHeightsSpaces = 6 // or whatever.. (consider scrolling !)
let heightDependentSpace = nrOfCellHeightsSpaces * rowHeight
let customViewFooter = UIView(frame: CGRect(x: 0, y: 0, width: tableView.bounds.width, height: heightDependentSpace))
customViewFooter.backgroundColor = .clear // or whatever color
// add whatever customization of your extra bottom-space
// (such as copyrights, decent logos, product information, etc, etc)
tableView.tableFooterView = customViewFooter
Ответ 6
Просто добавьте чистое чистое представление внизу таблицы в раскадровке.
Ответ 7
Спасибо @Siklab.ph для меня лучший ответ.
self.tableView.contentInset.bottom = 100
Ответ 8
У меня возникли некоторые проблемы при использовании footerView
при его использовании вместе с разделами раньше, так что вот еще один подход, который работал у меня, вы также можете попробовать создать пользовательский cell
, который является всего лишь emptyView
и показывать что именно cell
в последнем индексе.
В numberOfRowsInSection
просто сделайте общее количество строк больше, чем общее количество строк, которые вы хотите показать.
И в cellForRowAtIndexPath
вы можете сделать что-то вроде:
if(indexPath.row == size + 1){
//show custom cell
}