2016-08-17 67 views
3

我有一個UITableView頂部的標題。在該標頭是其他UIViewsUITextViewsUILables與動態高度計算UIView的內容大小?

,我不知道,如果有,以計算該頭的內容高度的溶液,所以可相對於它的內容設置其高度。我知道我可以手動計算,但有時候這樣的功能可能會很舒服。

具有自動佈局:

您可以使用此教程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 
} 
+0

如果你使用自動佈局,這將是去http://roadfiresoftware.com/2015/05/how-to-size-a-table-header-view-using-auto-layout-in-interface -builder /。希望這可以幫助! – riik

+0

啊感謝它的工作! :) @riik –

回答

1

具有自動佈局:

您可以使用此教程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 
}