We can use custom section header on UITableView.
Sub class : UITableViewHeaderFooterView
UITableViewHeaderFooterViewを継承したクラスを作成します。
We need to implement the sub class of UITableViewHeaderFooterView.
import UIKit
class CustomTableViewHeaderFooterView: UITableViewHeaderFooterView {
@IBOutlet weak var headerView: UIView!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
}
Nib file
We need to implement the view for Header.
Set to TableView
We need to use tableView.registerNib like a Cell. This is used return value in tableView:viewForHeaderInSection method.
If View width is no good, you need to set frame.size.
class ViewController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
let nib:UINib = UINib(nibName: "CustomTableViewHeaderFooterView", bundle: nil)
tableView.registerNib(nib, forHeaderFooterViewReuseIdentifier: "CustomTableViewHeaderFooterView")
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
// header height
override func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 44
}
// header view
override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let header :CustomTableViewHeaderFooterView = self.tableView.dequeueReusableHeaderFooterViewWithIdentifier("CustomTableViewHeaderFooterView") as! CustomTableViewHeaderFooterView
header.headerView.frame.size = CGRectMake(0, 0, tableView.frame.size.width, 44).size
return header
}
}