環境
- Swift4
- Xcode9
概要
Storyboard上でTableViewにHeaderViewを追加し実行するとUILabel等の高さが変わる時にHeaderViewの高さが変わらずにSubViewが途切れてしまった.
UITableViewController().viewWillLayoutSubviews()をオーバーライドしてコードを追加し,これを解決する.
Example
MyTableViewController.swift
override func viewWillLayoutSubviews() { super.viewWillLayoutSubviews() if let headerView = tableView.tableHeaderView { let height = headerView.systemLayoutSizeFitting(UILayoutFittingCompressedSize).height if height != headerView.frame.size.height { tableView.tableHeaderView?.frame.size.height = height } } }