【问题标题】:UITableView, how to adjust the size of its header and footer?UITableView,如何调整其页眉和页脚的大小?
【发布时间】:2015-07-27 06:16:56
【问题描述】:

在auto-layout设计中,我选择了universal size(600x600),在storyboard里面拖了一个UITableView到viewController中,这个tableView占据了整个水平空间,高度为550。 我想添加一个 UIWebView(加载本地静态 html 文件。)作为 tableView 的页脚,但是添加后,webView 无法正确显示(就像 webView 有更多的水平空间)。

这是我的代码:

- (void)viewDidLoad {
  [super viewDidLoad];
  [self loadHtml];
}
- (void) loadHtml {

  float height = 500; //maybe more , up to content of html
  _webview = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width , height)];
  ...
 // load html fille content as html
 [ _webview loadHTMLString:html baseURL:nil];
 [self.table setTableFooterView: _webview];
}

我调试_webview的大小,发现它的宽度总是600,即使我在初始化时改变了它的值。我是怎么做的。 使用自动布局时,我们不应该使用固定值,但是如何初始化一个 UIView 呢?

注意这是我的错,我没有为tableView添加约束。

【问题讨论】:

  • 所以您的意思是您希望 Web 视图调整到其内容高度,然后设置为页脚?
  • 是的,这就是我想要的。

标签: ios uitableview uiwebview


【解决方案1】:

您需要在代码中执行此操作。加载表格视图后,创建一个 Web 视图并设置框架(只有宽度与表格视图相同才是真正重要的)。然后,加载 web 视图内容并等待委托被告知它已完成。现在您可以获取 web 视图滚动视图的内容大小并更新框架,然后添加为页脚视图。

【讨论】:

  • 在 webViewDidFinishLoad 中,我检查了我的表格的大小,此时它的 (600x550),也许我的 html 是本地的,并且加载速度如此之快。
【解决方案2】:

如果我理解正确,您想将 UIWebView 添加为 UITableView 的页脚。 为了改变 UITableView 的页脚的高度大小,您可能需要覆盖委托方法:

objc - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section

除此之外,如果你想根据webView的内容改变视图大小,你可以试试

objc - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { JSKOriginalWebView *webview = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width , height)]; [webview loadHTMLString:html baseURL:nil]; return [webview heightForContent]; }

JSKOriginalWebView 是原始 webview,heightForContent 返回内容的高度。通过这种方式,您可以与自动布局集成。

【讨论】:

  • 不,我想为表格添加页脚,而不是部分。
【解决方案3】:

只需将tableFooterView的frame属性设置为Added WebView to It即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 2011-02-16
    相关资源
    最近更新 更多