UITableViewCustomCell 中的 WKWebView 不工作
WKWebView in UITableViewCustomCell not working
我想在自定义单元格中显示一个网页并编写了如下代码,但我无法让它工作。
应用程序在 "self.webView!.navigationDelegate = self" 行崩溃 "Thread 1: EXC_BAD_INSTRUCTION_i386_INVOP, subcode=0x0"。
如果我注释掉这一行,我可以构建它,但应用程序什么也不显示。 (此单元格高度变为零,我看不到任何内容。)
非常感谢您的建议。
ContentViewController.swift(带有 UITableView 的视图控制器)
if indexPath.section == 0 {
var cell : ArticleWKWebViewCustomCell = tableView.dequeueReusableCellWithIdentifier("ArticleWKWebViewCustomCell") as! ArticleWKWebViewCustomCell
return cell
}
else ....(abbreviated)
ArticleWKWebViewCustomCell.swift
导入 UIKit
导入 WebKit
class ArticleWKWebViewCustomCell: UITableViewCell, WKNavigationDelegate {
@IBOutlet weak var view: UIView!
var webView: WKWebView?
override func awakeFromNib() {
super.awakeFromNib()
self.webView!.navigationDelegate = self
self.webView = WKWebView()
view.addSubview(self.webView!)
let url = NSURL(string:"http://www.yahoo.co.jp")
let request = NSURLRequest(URL: url!)
self.webView!.loadRequest(request)
}
func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
println("Finished navigating to url")
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
我解决了,感谢我朋友的建议。
原来我需要为webView设置frame的大小。
我在 view.addSubview(self.webView!)
之后添加了以下代码
self.webView?.frame = CGRectMake(0, 0, CGRectGetWidth(view.frame), CGRectGetHeight(view.frame))
我想在自定义单元格中显示一个网页并编写了如下代码,但我无法让它工作。
应用程序在 "self.webView!.navigationDelegate = self" 行崩溃 "Thread 1: EXC_BAD_INSTRUCTION_i386_INVOP, subcode=0x0"。
如果我注释掉这一行,我可以构建它,但应用程序什么也不显示。 (此单元格高度变为零,我看不到任何内容。)
非常感谢您的建议。
ContentViewController.swift(带有 UITableView 的视图控制器)
if indexPath.section == 0 {
var cell : ArticleWKWebViewCustomCell = tableView.dequeueReusableCellWithIdentifier("ArticleWKWebViewCustomCell") as! ArticleWKWebViewCustomCell
return cell
}
else ....(abbreviated)
ArticleWKWebViewCustomCell.swift 导入 UIKit 导入 WebKit
class ArticleWKWebViewCustomCell: UITableViewCell, WKNavigationDelegate {
@IBOutlet weak var view: UIView!
var webView: WKWebView?
override func awakeFromNib() {
super.awakeFromNib()
self.webView!.navigationDelegate = self
self.webView = WKWebView()
view.addSubview(self.webView!)
let url = NSURL(string:"http://www.yahoo.co.jp")
let request = NSURLRequest(URL: url!)
self.webView!.loadRequest(request)
}
func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
println("Finished navigating to url")
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
我解决了,感谢我朋友的建议。
原来我需要为webView设置frame的大小。
我在 view.addSubview(self.webView!)
self.webView?.frame = CGRectMake(0, 0, CGRectGetWidth(view.frame), CGRectGetHeight(view.frame))