Skip to content

Instantly share code, notes, and snippets.

@Shinolr
Created March 18, 2020 13:05
Show Gist options
  • Save Shinolr/155645eff3092b95018abb97796fe5ff to your computer and use it in GitHub Desktop.
Save Shinolr/155645eff3092b95018abb97796fe5ff to your computer and use it in GitHub Desktop.
Using AutoLayout setup UITableView's tableHeaderView
override func viewDidLoad() {
let selfSizingTableHeaderView = SelfSizingTableHeaderView()
tableView.tableHeaderView = selfSizingTableHeaderView
selfSizingTableHeaderView.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
selfSizingTableHeaderView.leadingAnchor.constraint(equalTo: tableView.leadingAnchor),
selfSizingTableHeaderView.centerXAnchor.constraint(equalTo: tableView.centerXAnchor),
selfSizingTableHeaderView.topAnchor.constraint(equalTo: tableView.topAnchor)
])
}
override func viewDidLayoutSubviews() {
guard let headerView = tableView.tableHeaderView else { return }
let size = headerView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize)
if headerView.frame.size.height != size.height {
headerView.frame.size.height = size.height
tableView.tableHeaderView = headerView
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment