私はUIWebView
にサイズ> 5MBのpdfファイルを読み込みます。私はロード後に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を完全に読み込んだ後、インジケータが消えます。とにかく、インジケーターが消えたときにイベントを特定できれば、ファイルを拡大縮小できます。
これを識別する方法はありますか?または、ファイルロードの完了を識別する他の方法はありますか?
何かをします。 'contentSize'が' observeValue() 'のユーザによって引き起こされたことを識別する方法はありますか? – iOS