展开和收缩视图中相邻的 UI 个对象
Expanding & Contracting adjacent UI objects within a view
我有一个 ViewController 分为两部分。
最上面是一个UIWebView
最下面是一个UITableView
有时,UITableView 不需要任何内容。所以我想做的是将 UIWebView 扩展到 UITableView 已放弃的空 space 中。
我启用了具有以下约束的自动布局:
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];
我不会"pull"上面的UIWebView,它也恰好隐藏了下方的导航栏
除了-
之外,保持与您给定的约束相同
不要隐藏 UITableView ,而是将其从超级视图中删除并将 UIWebView 的底部固定到具有低优先级约束的底部,这样当您删除 UITableview 时,此低优先级约束将起作用并且它将扩展您的 UIWebView。
隐藏视图不会更改其大小或约束,因此您得到的结果是预料之中的。您可能应该对 table 视图设置高度限制,并为其创建一个 IBOutlet。当table中没有内容时,修改constraint的常量属性使其为0。
self.tableHeightConstraint.constant = 0;
当有内容时,您可以计算 table 视图所需的高度,并将常量设置为该值,或者您不想超过的某个最大值。
我有一个 ViewController 分为两部分。
最上面是一个UIWebView 最下面是一个UITableView
有时,UITableView 不需要任何内容。所以我想做的是将 UIWebView 扩展到 UITableView 已放弃的空 space 中。
我启用了具有以下约束的自动布局: 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];
我不会"pull"上面的UIWebView,它也恰好隐藏了下方的导航栏
除了-
之外,保持与您给定的约束相同
不要隐藏 UITableView ,而是将其从超级视图中删除并将 UIWebView 的底部固定到具有低优先级约束的底部,这样当您删除 UITableview 时,此低优先级约束将起作用并且它将扩展您的 UIWebView。
隐藏视图不会更改其大小或约束,因此您得到的结果是预料之中的。您可能应该对 table 视图设置高度限制,并为其创建一个 IBOutlet。当table中没有内容时,修改constraint的常量属性使其为0。
self.tableHeightConstraint.constant = 0;
当有内容时,您可以计算 table 视图所需的高度,并将常量设置为该值,或者您不想超过的某个最大值。