我在 func webViewDidFinishLoad(webView: UIWebView) {
webView.scrollView.setZoomScale(3.0, animated: false)
webView.scrollView.contentOffset = CGPointMake(0, -(self.webView.scrollView.contentInset.top))
}
中加载了一个大小> 5MB的pdf文件。我想在加载后将PDF文件缩放到一定程度。
webViewDidFinishLoad
上面的代码段给出了iOS 9+上的预期结果。但是在iOS 8上,当 let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(0.1 * Double(NSEC_PER_SEC)))
dispatch_after(delayTime, dispatch_get_main_queue()) {
webView.scrollView.setZoomScale(3.0, animated: false)
webView.scrollView.contentOffset = CGPointMake(0, -(self.webView.scrollView.contentInset.top))
}
被触发时,pdf没有被加载并且没有效果。
我也试过
webView
它工作正常,但不是每次都这样。增加时间不是一个好主意,因为有时;With CTE AS (
SELECT Name, Country, Status,
COUNT(*) OVER (PARTITION BY Name, Country) AS cnt
FROM mytable
), CTE2 AS (
SELECT Name, Country, Status,
DENSE_RANK() OVER (PARTITION BY Name ORDER BY cnt DESC, Country) AS seq
FROM CTE
)
SELECT Name, Country, Status, COUNT(*) AS Total
FROM CTE2
WHERE seq <= 3
GROUP BY Name, Country, Status
ORDER BY Name, Country
加载文件需要5秒以上。
我尝试了google搜索的许多解决方案
UIWebView: when did a page really finish loading?
How to detect when a UIWebView has completely finished loading?
UIWebView - How to identify the "last" webViewDidFinishLoad message?
但没有解决我的问题。
我在屏幕截图中看到的活动指示器未添加。完全加载PDF后指示消失。无论如何,如果我们能够在指标消失时识别事件,那么我可以缩放文件。
有没有办法识别它?或者用于识别文件加载完成的任何其他方式?
答案 0 :(得分:0)
我在WKWebView中遇到了类似的问题。我的解决方案是将contentSize的观察者添加到webView.scrollView。不确定这是否有助于解决您的问题,但希望它会指出您正确的方向。
webView.scrollView.addObserver(self, forKeyPath: #keyPath(UIScrollView.contentSize), options: .new, context: nil)
获得结果时执行某些操作
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if keyPath == #keyPath(UIScrollView.contentSize) {
//do something
}
}