Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 键入时如何更改UIWebview高度?_Ios_Objective C_Uiwebview - Fatal编程技术网

Ios 键入时如何更改UIWebview高度?

Ios 键入时如何更改UIWebview高度?,ios,objective-c,uiwebview,Ios,Objective C,Uiwebview,我正在使用UIWebView创建富文本编辑器。此web视图放置在UITableView的自定义单元格中 在webview中键入内容时,我需要更改单元格大小。我想在打字时获得webview高度。webview中没有滚动 这是webview的初始内容 NSString* plainContent = @"Edit here....."; NSString* htmlContentString = [NSString stringWithFormat:

我正在使用
UIWebView
创建富文本编辑器。此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];
NSString*plainContent=@“在此处编辑…”;
NSString*htmlContentString=[NSString stringWithFormat:
@""
""
""
"%@"
""
“,纯内容];
[_webviewloadhtmlstring:htmlContentString baseURL:nil];

键入时如何更改UIWebView的高度?

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


谢谢。

我知道不久前有人问过这个问题,但我正在研究这个问题,我发现了处理这个问题的方法。简而言之,处理这个问题的最佳方法是按以下方式使用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处理程序添加到JavaScript函数
    callApp
  • 更新可编辑的
    div
    以在输入更改时调用JavaScript函数
    callApp

连接好后,您在
UIWebView
中输入的每一个键都将在Swift中触发
callbackHandler
。然后,您可以使用此选项根据需要调整
UIWebView
的大小。

我想根据键入获得UIWebView高度。我需要知道键入时如何获得UIWebView。之后,我可以更改表格视图高度。您可以使用webView.scrollView.contentSize.height获得它。是的,谢谢您,它可以工作。当我键入它时,会增加高度。但当我删除文本时,它不会降低高度。为什么?