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获得它。是的,谢谢您,它可以工作。当我键入它时,会增加高度。但当我删除文本时,它不会降低高度。为什么?