2017-05-25 73 views
0

我有一個UITableView正下方的UIView。 tableview有一個自定義標題,它包含一個UISearchbar和一個UISegmententedController。頂視圖和tableview被限制在彼此和superview中。如果我隱藏頂部視圖,則表格視圖的標題會被拉伸。隱藏UITableView之上的視圖會導致tableview的標題被拉伸

頂視圖中可見:

Top view is green and directly under it is the tableView

頂視圖中隱藏(高度限制設置爲0):

enter image description here

我的期望是,當我隱藏頂部查看我的tableview內容應該向上滾動,但不是重新定位單元格,tableview會伸出標題視圖。

感謝您的幫助!

回答

0

我不知道爲什麼,但如果從xib創建自定義tableView標題,然後它會搞砸。但是如果視圖是以編程方式創建的,它就可以工作我不知道爲什麼,但修復只需要創建的tableview頭編程

壞的問題:

if let headerView = Bundle.main.loadNibNamed("HeaderView", owner: self, options: nil)?[0] as? HeaderView { 
    tableview.tableHeaderView = headerView 
} 

好:

tableview.tableHeaderView = UIView(frame: CGRect(x: 0, y: 0, width: 50, height: 80)) 
+0

顯然,這個問題曾與自動尺寸做面膜。不讓視圖autoresize的高度似乎也已修復它 – Kevin

0

如果你想使的tableView滾動,我建議獲取頂部視圖的高度約束並將其減少到0.您可以更新UIView.animate塊中的高度約束,以在顯示和隱藏頂部視圖時進行更平滑的過渡。

參見此處瞭解詳情:AutoLayout with hidden UIViews?