class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var data = ["abc djak da njdas sajlnakjs casjoas casklcnal csadjsa cnsljanl sd clnsdla ",
"Sample cell with variable amount of text to demostrate the dynamic height of for the cell.",
"Sample cell with variable amount of text to demostrate the dynamic height of for the cell. --- Sample cell with variable amount of text to demostrate the dynamic height of for the cell.",
"Sample cell with variable amount of text to demostrate the dynamic height of for the cell. --- Sample cell with variable amount of text to demostrate the dynamic height of for the cell.--- Sample cell with variable amount of text to demostrate the dynamic height of for the cell. --- Sample cell with variable amount of text to demostrate the dynamic height of for the cell.", "Sample cell with variable amount of text to demostrate the dynamic height of for the cell.", "abc djak da njdas sajlnakjs casjoas casklcnal csadjsa cnsljanl sd clnsdla ",
"Sample cell with variable amount of text to demostrate the dynamic height of for the cell.",
"Sample cell with variable amount of text to demostrate the dynamic height of for the cell. --- Sample cell with variable amount of text to demostrate the dynamic height of for the cell.",
"Sample cell with variable amount of text to demostrate the dynamic height of for the cell. --- Sample cell with variable amount of text to demostrate the dynamic height of for the cell.--- Sample cell with variable amount of text to demostrate the dynamic height of for the cell. --- Sample cell with variable amount of text to demostrate the dynamic height of for the cell.", "Sample cell with variable amount of text to demostrate the dynamic height of for the cell.",
"abc djak da njdas sajlnakjs casjoas casklcnal csadjsa cnsljanl sd clnsdla ",
"Sample cell with variable amount of text to demostrate the dynamic height of for the cell.",
"Sample cell with variable amount of text to demostrate the dynamic height of for the cell. --- Sample cell with variable amount of text to demostrate the dynamic height of for the cell.",
"Sample cell with variable amount of text to demostrate the dynamic height of for the cell. --- Sample cell with variable amount of text to demostrate the dynamic height of for the cell.--- Sample cell with variable amount of text to demostrate the dynamic height of for the cell. --- Sample cell with variable amount of text to demostrate the dynamic height of for the cell.", "Sample cell with variable amount of text to demostrate the dynamic height of for the cell."
]
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
// Register the custom header view.
let nib1 = UINib.init(nibName: "HSimpleSectionHeaderTypeTwoView", bundle: nil)
tableView.register(nib1, forHeaderFooterViewReuseIdentifier: "sectionHeader") //(HSimpleSectionHeaderTypeTwoView.self, forHeaderFooterViewReuseIdentifier: "sectionHeader")
let nib = UINib.init(nibName: "CustomTableViewCell", bundle: nil)
tableView.register(nib, forCellReuseIdentifier: "CustomTableViewCell")
tableView.rowHeight = UITableView.automaticDimension
tableView.estimatedRowHeight = 100
//tableView.sectionHeaderHeight = 50
//tableView.estimatedSectionHeaderHeight = 50
}
func numberOfSections(in tableView: UITableView) -> Int {
12
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
data.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CustomTableViewCell") as! CustomTableViewCell
cell.setCell(text: data[indexPath.row])
return cell
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let view = tableView.dequeueReusableHeaderFooterView(withIdentifier:
"sectionHeader") as! HSimpleSectionHeaderTypeTwoView
view.title = data[section]
return view
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
let feedHeaderView = tableView.dequeueReusableHeaderFooterView(withIdentifier: "sectionHeader") as! HSimpleSectionHeaderTypeTwoView
feedHeaderView.title = data[section]
return feedHeaderView.height
}
}
I am suppose to return dynamic height for header based on current text for section, but on scrolling table view i am not getting call in heightForSection method. But As per doumentation - https://developer.apple.com/documentation/uikit/views_and_controls/table_views/adding_headers_and_footers_to_table_sections It should call the heightForHeader delegate method.