获取使用 UIWebView 请求的网站的高度
Get the height of a website requested with UIWebView
我请求使用此代码的网站
let requestObj = NSURLRequest(URL: url)
myWebView.loadRequest(requestObj)
print (myWebView.scrollView.contentSize.height) //1
print (myWebView.frame.size.height) //2
当网站的实际大小远不止于此时,代码总是 return 1000.0。有没有办法获得真实尺寸?我想显示 WebView 的空洞内容,而不需要在 WebView 内滚动。
你需要使用webViewDidFinishLoad
委托方法,这个答案最初创建于此How to determine the content size of a UIWebView?
在你的 viewDidLoad
方法中做这样的事情
override func viewDidLoad() {
super.viewDidLoad()
self.webView.loadHTMLString(component.html, baseURL: nil)
self.webView.scrollView.isScrollEnabled = false
self.webView.scrollView.bounces = false
self.webView.delegate = self
self.delegate = delegate
}
public func webViewDidFinishLoad(_ webView: UIWebView)
{
var frame = webView.frame
frame.size.height = 1
webView.frame = frame
let fittingSize = webView.sizeThatFits(CGSize(width: 0, height: 0))
frame.size = fittingSize
webView.frame = frame
webView.scrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);
self.delegate?.heightHasChanged(indexPath:self.indexPath, newHeight: frame.height)
self.loadingView.isHidden = true
self.loadingActivityIndicator.stopAnimating()
}
希望对您有所帮助,祝好
我请求使用此代码的网站
let requestObj = NSURLRequest(URL: url)
myWebView.loadRequest(requestObj)
print (myWebView.scrollView.contentSize.height) //1
print (myWebView.frame.size.height) //2
当网站的实际大小远不止于此时,代码总是 return 1000.0。有没有办法获得真实尺寸?我想显示 WebView 的空洞内容,而不需要在 WebView 内滚动。
你需要使用webViewDidFinishLoad
委托方法,这个答案最初创建于此How to determine the content size of a UIWebView?
在你的 viewDidLoad
方法中做这样的事情
override func viewDidLoad() {
super.viewDidLoad()
self.webView.loadHTMLString(component.html, baseURL: nil)
self.webView.scrollView.isScrollEnabled = false
self.webView.scrollView.bounces = false
self.webView.delegate = self
self.delegate = delegate
}
public func webViewDidFinishLoad(_ webView: UIWebView)
{
var frame = webView.frame
frame.size.height = 1
webView.frame = frame
let fittingSize = webView.sizeThatFits(CGSize(width: 0, height: 0))
frame.size = fittingSize
webView.frame = frame
webView.scrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);
self.delegate?.heightHasChanged(indexPath:self.indexPath, newHeight: frame.height)
self.loadingView.isHidden = true
self.loadingActivityIndicator.stopAnimating()
}
希望对您有所帮助,祝好