扩大和扩大在视图中收缩相邻的UI对象

时间:2015-05-17 16:08:01

标签: ios uitableview uiwebview

我有一个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条。

2 个答案:

答案 0 :(得分:1)

隐藏视图不会改变其大小或约束,因此您获得的结果是预期的。您应该在表视图上有一个高度约束,并为其创建一个IBOutlet。如果表中没有内容,请修改约束的常量属性以使其为0。

self.tableHeightConstraint.constant = 0;

当有内容时,您可以计算表格视图所需的高度,并将常量设置为该值,或者您想要超越的某个最大值。

答案 1 :(得分:0)

保持约束与你给出的相同 - 除了 - 而不是隐藏UITableView,将其从superview和UIWebView的底部固定到低优先级约束的底部,这样当你删除UITableview时,这个低优先级约束将起作用,它将扩展你的UIWebView。