【发布时间】:2020-10-20 11:46:10
【问题描述】:
我在表格视图单元中包含一个 wkWebView,它可以自行调整大小并通过可分页控制器填充。它可以根据是否交付的 html 字符串启用和禁用。该单元是通过程序设计的。
我已经按照网上看到的许多示例设置了所有内容。但它没有显示任何内容,只是纯空白。 我不知道,我做错了什么。也许有人可以给我一个提示。
以下是有关 webview 的代码部分:
private let webView:WKWebView = { () -> WKWebView in
let webConfiguration = WKWebViewConfiguration()
let webView = WKWebView(frame: .zero, configuration: webConfiguration)
//webView.navigationDelegate = self
webView.translatesAutoresizingMaskIntoConstraints = false
return webView
}()
func update(entity: Codable) {
guard let news = entity as? NewsStream else {
print("not a news stream!")
return
}
if news.category == nil {
news.category = news.widgetType
}
//Set global news variable
self.news = news
createWebView()
}
func createWebView(){
webView.isHidden = true
if let html = news?.html, let link = news?.webLink {
if !html.isEmpty{
webView.isHidden = false
// let html2 = "<!DOCTYPE html><html><body><h1>My First Heading</h1><p>My first paragraph.</p></body></html>"
webView.loadHTMLString(html, baseURL: Bundle.main.bundleURL)
// let myURL = URL(string: "https://www.apple.com")
// let myRequest = URLRequest(url: myURL!)
// webView.load(myRequest)
webView.frame = CGRect(x: 0, y: currentYPos, width: contentView.frame.width, height: 400)
currentYPos = currentYPos + webView.frame.height
webView.backgroundColor = UIColor.green
webView.tintColor = UIColor.orange
webView.navigationDelegate = self
}
}
}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
self.webView.evaluateJavaScript("document.readyState", completionHandler: { (complete, error) in
if complete != nil {
self.webView.evaluateJavaScript("document.body.scrollHeight", completionHandler: { (height, error) in
self.webView.frame = CGRect(x: 0,
y: self.webView.frame.origin.y,
width:self.webView.frame.width,
height: height as! CGFloat)
})
}
print("Webview Did load")
print(webView.frame)
})
}
【问题讨论】:
-
你能显示你在单元格中添加
webViiew的代码吗? -
您的网页视图可能有错误(零)大小。你告诉它它应该使用约束(
translatesAutoresizingMaskIntoConstraints = false),但是你正在设置框架而不是设置任何约束。你不应该手动设置scrollHeight之类的东西。 -
Dosen't translatesAutoresizingMaskIntoConstraints = false 的意思是,它不应该使用约束?我在这个单元格中手动添加所有尺寸,它可以工作。我有这个理由。约束无法正确布局(或者我无法正确设置 - 无论如何。)单元格只有一个约束。而已。那么为什么你认为大小为零?我将带框架的尺寸设置为不同的尺寸以进行检查。覆盖的区域是可见的,但里面什么都没有
-
@koen,你是对的!那个确实不见了!愚蠢的错误....
标签: ios swift uitableview wkwebview