ios - 扩展和收缩 View 中相邻的 UI 对象

标签 ios uitableview uiwebview

我有一个分为两部分的 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/

相关文章:

iphone - 在iPhone上使用UIWebView禁用全屏youtube视频显示

ios - 如果我插入此函数 -imageFromCurrentFramebufferWithOrientation - (GPUImageLookupFilter),我会收到错误消息

ios - UICollectionView 项目未正确清除,重新加载的项目粘贴在旧项目上

iOS,核心数据 : set argument is not an NSSet error when counting an NSSet

ios - 一种忽略方法抛出的任何错误的优雅方法

c# - Xamarin iOS UITableView 在初始设置时调用所有单元格的委托(delegate)方法,而不仅仅是可见单元格

ios - 我的 UITableView 中的自定义标题 View 在底部绘制了额外的线

swift - 在 Swift 中,如何使动态 tableView 单元格可选择,以便当按下它时它会传输到不同的 tableViewController?

android - 为 native 应用程序 webview 设置 cookie

iphone - 如何替换 iOS 6 上 UIWebView 键盘下工具栏上的按钮?