我必须在UITableView中集成WKWebView(请不要质疑).
我确保WKWebView滚动被禁用,这样我就避免在可滚动视图(UITableView)中有可滚动视图.
但是,当WKWebview中的HTML内容很大时,让我们说两次屏幕,我发现屏幕下方的内容没有显示给用户,即当用户滚动表格视图时,只有白色\空屏幕,其中WKWebView是......
我根据以下内容更新了WebViewTableViewCell的高度:
public func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
let height = webView.scrollView.contentSize.height
...
...
delegate.updateWebViewCellHeight(height: self.cellHeight)
}
Run Code Online (Sandbox Code Playgroud)
我想这可能是WKWebView上的一些优化的结果,它允许它仅在屏幕上显示时才呈现DOM.
我的问题是,为了确保在滚动表格视图时向用户显示WKWebView中的所有内容,我该怎么办?
PS UIWebView渲染所有内容都很好,它似乎只在WKWebView中发生
见下图:
我正在试图找出如何将WebView保存为PDF并完全卡住,真的很感激一些帮助吗?
我在OSX上的Cocoa和Swift中这样做,这是我的代码到目前为止:
import Cocoa
import WebKit
class ViewController: NSViewController {
override func loadView() {
super.loadView()
}
override func viewDidLoad() {
super.viewDidLoad()
loadHTMLString()
}
func loadHTMLString() {
let webView = WKWebView(frame: self.view.frame)
webView.loadHTMLString("<html><body><p>Hello, World!</p></body></html>", baseURL: nil)
self.view.addSubview(webView)
createPDFFromView(webView, saveToDocumentWithFileName: "test.pdf")
}
func createPDFFromView(view: NSView, saveToDocumentWithFileName fileName: String) {
let pdfData = view.dataWithPDFInsideRect(view.bounds)
if let documentDirectories = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first {
let documentsFileName = documentDirectories + "/" + fileName
debugPrint(documentsFileName)
pdfData.writeToFile(documentsFileName, atomically: false)
}
}
}
Run Code Online (Sandbox Code Playgroud)
这很简单,我正在做的是创建一个WebView并写一些基本的html内容给它:
然后获取视图并将其保存为PDF文件但是空白:
我试过从webView和View中抓取内容但没有快乐.
我在这里发现了类似的问题如何在webview完成关于将webview保存到图像 …