我有一个ViewController,分为两部分。
顶部是UIWebView 底部是UITableView
有时,UITableView不需要内容。所以我想要做的是让UIWebView扩展到UITableView放弃的空白区域。
我启用了自动布局,但有以下限制: UIWebView固定在ViewController的顶部,UIWebView的底部固定在UITableView的顶部
UITableView固定在底部,UITableView的顶部固定在UIWebView的底部。
当我将UITableView的hidden属性设置为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中,它也恰好隐藏了较低的navigaiton条。
答案 0 :(得分:1)
隐藏视图不会改变其大小或约束,因此您获得的结果是预期的。您应该在表视图上有一个高度约束,并为其创建一个IBOutlet。如果表中没有内容,请修改约束的常量属性以使其为0。
self.tableHeightConstraint.constant = 0;
当有内容时,您可以计算表格视图所需的高度,并将常量设置为该值,或者您想要超越的某个最大值。
答案 1 :(得分:0)
保持约束与你给出的相同 - 除了 - 而不是隐藏UITableView,将其从superview和UIWebView的底部固定到低优先级约束的底部,这样当你删除UITableview时,这个低优先级约束将起作用,它将扩展你的UIWebView。