Добавьте пустое (пустое) пространство под (в конце) UITableView

Мои приложения UITableView, которые имеют переменное количество ячеек внутри. Как добавить пустое (пустое) пространство с определенной высотой под UITableView? Или в самом конце UITableView? Так что после самой последней ячейки будет больше пустого места.

Надеюсь, мой вопрос понятен. Заранее спасибо

4 ответов


сделайте вставку содержимого в виде таблицы:

let insets = UIEdgeInsets(top: 0, left: 0, bottom: 100, right: 0)
self.tableView.contentInset = insets

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


можно использовать tableView Footer для этого

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 100)];
[self.tableView setTableFooterView:view];

будьте осторожны с программной прокруткой и определением пустого пространства внизу:

одна вещь, которую нужно учитывать: если вы используете программную прокрутку к определенной ячейке в своем 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

я столкнулся с некоторыми проблемами при использовании footerView при использовании его вместе с разделами и раньше, так что вот еще один подход, который работал для меня, вы также можете попробовать создать пользовательскую cell это просто emptyView и показать, что конкретное cell по последнему индексу.

на numberOfRowsInSection просто сделайте общее количество строк на один больше, чем общее количество строк, которые вы хотите показать.

и cellForRowAtIndexPath, вы можете сделать что-то вроде-

if(indexPath.row == size + 1){
     //show custom cell
}