计算UIView的内容大小?

Jul*_*per 7 ios swift

我UITableView的顶部有一个标头。在该标头是其他UIViews,UITextViews和UILables具有动态高度

我想知道是否有解决方案可以计算此标头的内容高度,因此我可以相对于其内容设置其高度。我知道我可以手动计算它,但有时这样的功能会很舒适。

使用自动布局:

您可以使用本教程http://roadfiresoftware.com/2015/05/how-to-size-a-table-header-view-using-auto-layout-in-interface-builder/

override func viewDidLayoutSubviews() {
   super.viewDidLayoutSubviews()
   sizeHeaderToFit()
}

func sizeHeaderToFit() {
   let headerView = tableView.tableHeaderView!

   headerView.setNeedsLayout()
   headerView.layoutIfNeeded()

   let height = headerView.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize).height
   var frame = headerView.frame
   frame.size.height = height
   headerView.frame = frame

   tableView.tableHeaderView = headerView
}
Run Code Online (Sandbox Code Playgroud)

Jul*_*per 8

使用自动布局:

您可以使用本教程http://roadfiresoftware.com/2015/05/how-to-size-a-table-header-view-using-auto-layout-in-interface-builder/

override func viewDidLayoutSubviews() {
   super.viewDidLayoutSubviews()
   sizeHeaderToFit()
}

func sizeHeaderToFit() {
   let headerView = tableView.tableHeaderView!

   headerView.setNeedsLayout()
   headerView.layoutIfNeeded()

   let height = headerView.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize).height
   var frame = headerView.frame
   frame.size.height = height
   headerView.frame = frame

   tableView.tableHeaderView = headerView
}
Run Code Online (Sandbox Code Playgroud)