快速在表格视图的最后一个元素下方添加空间

时间:2019-03-01 05:42:27

标签: ios swift uitableview

我需要在表格视图单元格中的最后一个元素之后添加一些额外的空间。

在android reccycler视图中,可以通过

实现相同的操作
android:paddingBottom="8dp"
 android:clipToPadding="false"

Table view last item

6 个答案:

答案 0 :(得分:2)

为您的表视图添加数据源和委托,并利用以下委托方法: -heightForFooterInSectionviewForFooterInSection

// set view for footer
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
    let footerView = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.size.width, height: 40)) // assuming 40 height for footer.
    footerView.backgroundColor = <Some Color>
    return footerView
}

// set height for footer
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
    return 40
}

答案 1 :(得分:2)

您需要将 insets 添加到tableView中。尝试以下代码

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

答案 2 :(得分:1)

在tableView中没有可用数据时,当使用内容插图进行添加填充时,可能会产生一些问题。

尝试

简单地将tableFooterView底部的填充视图放在tableView中。

//Add Padding in the bottom of tableview

let view = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.size.width, height: 20))
view.backgroundColor = UIColor.white
tableView.tableFooterView = view

答案 3 :(得分:1)

在表视图中添加 tableFooterView

let tableFooterView  = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.size.width, height: 20))

  tableFooterView.backgroundColor = UIColor.white

  tableView.tableFooterView = tableFooterView

答案 4 :(得分:1)

Swift 5

我一开始尝试添加 tableView inset,但在我的情况下不起作用。相反,我尝试在 UItableView 的末尾添加 footerView。

    
    func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
        let footerView = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.size.width, height: 100))
        return footerView
    }

// Incase you have more then one sections. you will add at the end of last section.

    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
        if section == exercisesArray.count-1 {
            return 60
        }else{
            return 0
        }
        
    }

答案 5 :(得分:0)

从上一个答案开始,您需要检查它是否是最后一个单元格。

let bottomPadding = 8

if (self?.tableView.numberOfRows(inSection: 0) ?? 0) - 1 == row {
    let insets = UIEdgeInsets(top: 0, left: 0, bottom: bottomPadding, right: 0)
    strongSelf.tableView.contentInset = insets
}

假设您正在编辑第一部分。