隐藏UITableView上方的视图会导致拉伸tableview的标题

时间:2017-05-25 22:22:08

标签: ios iphone uitableview header

我有一个UITiew,右下方有一个UITableView。 tableview有一个自定义标题,它包含一个UISearchbar和一个UISegmententedController。顶视图和tableview相互约束并与superview相关。如果我隐藏顶视图,则tableview的标题会被拉伸。

顶视图可见:

Top view is green and directly under it is the tableView

隐藏顶视图(高度约束设置为0):

enter image description here

我的期望是,当我隐藏顶视图时,我的tableview内容应该向上滚动,但是tableview不是重新定位单元格,而是拉伸标题视图。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

我不确定为什么,但是如果自定义的tableView标头是从xib创建的,那么它就会搞砸了。但是,如果以编程方式创建视图,则可以正常工作我不知道为什么,但要解决以编程方式创建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))

答案 1 :(得分:0)

如果要使tableView向上滚动,我建议获取顶视图的高度约束并将其减小为0.您可以更新UIView.animate块中的高度约束以获得更平滑的过渡显示和隐藏顶视图。

请参阅此处了解详情:AutoLayout with hidden UIViews?