如何在UITableView中制作最终页脚?

时间:2018-01-18 08:08:25

标签: ios swift uitableview footer

我尝试在iOS应用程序“联系人”中使用UITableView创建一个页脚。

enter image description here

我有简单的tableView和简单的数组: items = [“aa”,“bb”,“cc”,“dd”] 我想在最后一个单元格下面留空空间。

我尝试添加此cellForRowAt

 if indexPath.row == self.converterItems.count-1 {
 cell.separatorInset = UIEdgeInsetsMake(0, cell.bounds.size.width, 0, 0)}

但它只删除一个单元格的分隔符。

override func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
        var header :UITableViewHeaderFooterView = UITableViewHeaderFooterView()

        header.contentView.backgroundColor = UIColor(red: 255.0/255.0, green: 255.0/255.0, blue: 255.0/255.0, alpha: 1)
        return header
    }

这个方法看起来不错,但它丢失了最后一个单元格下方的分隔符... enter image description here

2 个答案:

答案 0 :(得分:1)

您应该创建UIView并将其分配到表格的页脚视图

myTableView.tableFooterView = createTableFooterView()

func createTableFooterView() -> UIView {
    let footerView = UIView()
    ...
    ...
    ...
    return footerView
}

答案 1 :(得分:0)

让桌子无穷无尽。您最好设置UITableViewStyle.grouped

let tableView = UITableView(frame: CGRect.zero, style: .grouped)

然后:

extension ViewController: UITableViewDelegate, UITableViewDataSource{

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return [].count//  your array
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "", for: indexPath)
        // your cell
        // yourIdentifier, and you should register cell Identifier for tableView at first
        return cell
    }

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

    func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
        return ""
    }

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

    func tableView(_ tableView: UITableView, titleForFooterInSection section: Int) -> String? {
        return "83 KOH"
    }
}