2

我正在使用 aUIWebView创建富文本编辑器。此 Web 视图放置在一个自定义单元格中UITableView

在 webview 中键入时,我需要更改单元格大小。我想在打字时获得 webview 的高度。webview 内部没有滚动。

这是webview初始内容,

NSString* plainContent = @"Edit here.....";
NSString* htmlContentString = [NSString stringWithFormat:
                               @"<html>"
                               "<body>"

                               "<div id=\"content\" contenteditable=\"true\" style=\"font-family: Arial\">"
                               "%@"
                               "</div>"

                               "</body></html>", plainContent];

[_webView loadHTMLString:htmlContentString baseURL:nil];

打字时如何更改UIWebView高度?

4

2 回答 2

0

我知道这是不久前被问到的,但我正在努力解决这个问题,我发现了处理这个问题的方法。简而言之,处理此问题的最佳方法是按以下方式使用 JavaScriptCore.framework

    let context = self.webView.valueForKeyPath("documentView.webView.mainFrame.javaScriptContext") as JSContext
    var callbackHandler : @objc_block (JSValue) -> Void = { (val : JSValue) -> Void in
        NSLog("Got callback")
    }
    context.setObject(unsafeBitCast(callbackHandler, AnyObject.self), forKeyedSubscript: "callApp")
    context.evaluateScript("document.getElementById('content').addEventListener('input', callApp, false);")

这段代码的作用如下:

  • UIWebView在Swift 和 Swift之间建立连接
  • 将 Swift 处理程序添加到 JavaScript 函数callApp
  • 更新您的可编辑项以在输入更改时div调用 JavaScript 函数callApp

连接后,您在 Swift 中输入的每一次按键UIWebView都会触发callbackHandlerSwift。然后,您可以使用它来调整大小UIWebView

于 2015-03-06T07:56:47.830 回答
0

因为 UIWebView 是 UITableViewCell 的子视图,如果你想增加 webview 的大小,你必须增加 UITableView 的大小,请看这个线程,这更接近你想要的。

可以在不重新加载表格视图的情况下更改 UITableViewCell 的高度吗?

增加uitableviewcell高度同时增加内部UITextView

谢谢。

于 2013-10-24T11:32:46.673 回答