I'm wonder how to make it right programmatically, if you know, please, share with me.
Now my code looks like this:
let tbv = SearchTableView(frame: .zero, style: .grouped)
tbv.register(SearchTableCell.self, forCellReuseIdentifier: "searchTableCell")
tbv.register(SearchHeaderView.self, forHeaderFooterViewReuseIdentifier: "searchHeaderView")
In SearchTableView I make all DataSource methods and also do this:
override init(frame: CGRect, style: UITableView.Style) {
super.init(frame: frame, style: style)
register(SearchTableCell.self, forCellReuseIdentifier: "searchTableCell")
separatorStyle = .none
autoresizingMask = [.flexibleWidth, .flexibleHeight]
delegate = self
dataSource = self
}
And for header:
func tableView(_ tableView: UITableView,
viewForHeaderInSection section: Int) -> UIView? {
guard let view = tableView.dequeueReusableHeaderFooterView(withIdentifier: "searchHeaderView") as? SearchHeaderView else {
let view = SearchHeaderView(reuseIdentifier: "searchHeaderView")
return view
}
return view
}