我有一个UIView,它下面有一个UITableView。该表视图有一个自定义头,它包含一个UISearchbar和一个UISegmententedController。顶部视图和表视图相互约束,并被限制到superview。如果我隐藏顶部视图,表视图的标题就会被拉伸。
可见的顶部视图:

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

我的期望是,当我隐藏顶部视图时,我的tableview内容应该向上滚动,但不是重新定位单元格,而是将标题视图展开。
谢谢你的帮助!
发布于 2017-05-25 23:05:03
我不知道为什么,但是如果自定义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))发布于 2017-05-25 23:10:31
如果要使tableView向上滚动,我建议获取顶部视图的高度约束,并将其降为0。您可以更新UIView.animate块中的高度约束,以便在显示和隐藏顶部视图时具有更平稳的转换。
有关更多细节,请参阅此处:AutoLayout with hidden UIViews?
https://stackoverflow.com/questions/44190703
复制相似问题