我在UITableView的顶部有一个UIView(在Storyboard中拖放。我试图隐藏并显示该视图。但是表视图保持在原位。如何更改uivew的框架,以便当它不可见时,tableview一直到顶部?

PS。我将为愿意提供帮助的人提供更多信息。提前致谢

http://i.stack.imgur.com/cM3tA.png
 ![带有汉堡按钮和文本字段的视图)

最佳答案

使用自动布局:


使用按钮和textField向您的UIView添加高度约束
为此高度约束创建引用出口(让其计数为“ searchViewHeightConstraint”)
在UIView和UITableView之间添加垂直间距约束
在代码中-当您需要隐藏UIView时-只需将其高度限制设置为0

self.searchViewHeightConstraint.constant = 0.f;


另外,您还需要将UIView的初始高度存储在某个位置(可见时),并在需要显示UIView时将其Height Constraint设置为此值。

没有自动版式:


保存UIView框架高度的值
将UIView的高度设置为0
使用保存的UIView高度减小UITableView框架的y坐标

CGRect tableViewFrame = tableView.frame;
tableViewFrame.origin.y -= viewInitialHeight;
tableView.frame = tableViewFrame;

10-08 05:45
查看更多