Установить пользовательский вид таблицы футер с SWIFT

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

class LoginTableFooter: UITableViewHeaderFooterView

на viewDidLoad() Я написал этот код

let footerNib = UINib(nibName: "LoginTableFooter", bundle: nil)
        tableView.register(footerNib, forHeaderFooterViewReuseIdentifier: "LoginTableFooter")

затем я реализовал viewForFooterInSection

func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
    let cell = self.tableView.dequeueReusableHeaderFooterView(withIdentifier: "LoginTableFooter")
    let header = cell as! LoginTableFooter

    return cell
}

viewForFooterInSection никогда не назывался. Я также попытался реализовать viewForHeaderInSection но его тоже не называли. Ты хоть понимаешь, что не так? У меня есть только один раздел в моем виде таблицы; возможно ли / лучше установить нижний колонтитул непосредственно на viewDidLoad?

3 ответов


Implement-delegate & datasource для вашего tableview и установите оба -heightForFooterInSection & viewForFooterInSection

tableView.delegate = self
tableView.dataSource = self

// 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))
    footerView.backgroundColor = UIColor.blue
    return footerView
}

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

/ / во-первых, вам нужно вызвать делегат и источник данных представления таблицы. я.е:

  tableView.delegate = self
  tableView.dataSource = self

//вам нужно вызвать этого делегата

     func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
      return "your expected footer height"
}

Swift 3 Непосредственно используйте > viewForFooterInSection

override func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
    let footerView = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.size.width, height: 40))
    footerView.backgroundColor = UIColor.red

    return footerView
  }