我有一个分为两部分的 ViewController。
最上面是一个UIWebView 最下面是一个UITableView
有时,UITableView 不需要任何内容。所以我想做的是让 UIWebView 扩展到 UITableView 已经放弃的空白空间。
我启用了具有以下约束的自动布局: UIWebView 固定在 ViewController 的顶部,UIWebView 的底部固定在 UITableView 的顶部
UITableView 固定在底部,UITableView 的顶部固定在 UIWebView 的底部。
当我将 UITableView 的隐藏属性设置为 YES 时,它成功地隐藏了 UITableView,但在它曾经存在的地方留下了空白,没有展开 UIVWebView。
你有什么建议?
谢谢
[编辑]
以下代码将 tableView 下推,但在它后面留下一个空白。
CGRect newFrame = tableView.frame;
newFrame.origin.y += 130;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
[UIView setAnimationDelegate:self];
tableView.frame = newFrame;
[UIView commitAnimations];
上面的UIWebView我就不“拉”了,它也恰好隐藏了下方的导航栏。
最佳答案
隐藏 View 不会改变其大小或约束,因此您得到的结果是预期的。您可能应该对 TableView 设置高度限制,并为其创建一个 IBOutlet。当表中没有内容时,修改约束的常量属性,使其为0。
self.tableHeightConstraint.constant = 0;
当有内容时,您可以计算表格 View 所需的高度,并将常量设置为该值,或者您不想超过的某个最大值。
关于ios - 扩展和收缩 View 中相邻的 UI 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30289011/