Загрузите файл PDF размером> 5 МБ в мой UIWebView
. Я хочу масштабировать PDF-файл до определенного уровня после загрузки.webViewDidFinishLoad вызывается перед загрузкой файла - iOS 8
func webViewDidFinishLoad(webView: UIWebView) {
webView.scrollView.setZoomScale(3.0, animated: false)
webView.scrollView.contentOffset = CGPointMake(0, -(self.webView.scrollView.contentInset.top))
}
Приведенный выше фрагмент дает ожидаемый результат на iOS 9+. Но на iOS 8, когда webViewDidFinishLoad
уволен, PDF-файл не загружается и эффект не действует.
Я также попытался
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))
}
Он отлично работает, но не каждый раз. Увеличение времени - это не очень хорошая идея, потому что иногда webView
занимает более 5 секунд, чтобы загрузить файл.
Я пробовал много решений, которые я получил на прибегая к помощи
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-файла. Во всяком случае, если бы мы могли идентифицировать событие, когда индикатор исчезает, я могу масштабировать файл.
Есть ли способ определить его? Или каким-либо другим способом определить завершение загрузки файла?
Проблема сталкивается в добавлении наблюдателя, когда пользователь делает масштабирование Pinch также, слушатель называется там заканчиваясь с мерцанием страницы. Есть ли способ идентифицировать 'contentSize', вызванный пользователем в' observValue() '? – iOS