swiftを使用してWebビューを使用してpdfをロードしようとしています。それはPDFの1ページだけを読み込むことができます、複数のページを下にスクロールすることはできません。私に何ができる?迅速なWebViewで完全なPDFを読み込み/スクロールできません。
インポートのUIKit
クラスのViewController:(いずれかを同梱しない)外部のPDFを表示しようとしたとき、私は同様の問題にぶつかってきた
swiftを使用してWebビューを使用してpdfをロードしようとしています。それはPDFの1ページだけを読み込むことができます、複数のページを下にスクロールすることはできません。私に何ができる?迅速なWebViewで完全なPDFを読み込み/スクロールできません。
インポートのUIKit
クラスのViewController:(いずれかを同梱しない)外部のPDFを表示しようとしたとき、私は同様の問題にぶつかってきた
のUIViewController、UIWebViewDelegate {
@IBOutlet var webViews: UIWebView!
var path = ""
override func viewDidLoad() {
super.viewDidLoad()
path = NSBundle.mainBundle().pathForResource("ibook", ofType: "pdf")!
let url = NSURL.fileURLWithPath(path)
/*webViews.scalesPageToFit = true
webViews.scrollView.scrollEnabled = true
webViews.userInteractionEnabled = true*/
webViews.delegate = self
self.webViews.loadRequest(NSURLRequest(URL: url!
))
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func webViewDidStartLoad(webView : UIWebView) {
//UIApplication.sharedApplication().networkActivityIndicatorVisible = true
println("webViewDidStartLoad")
}
func webViewDidFinishLoad(webView : UIWebView) {
//UIApplication.sharedApplication().networkActivityIndicatorVisible = [enter image description here][1]false
webViews.scalesPageToFit = true
webViews.scrollView.scrollEnabled = true
webViews.userInteractionEnabled = true
println("webViewDidFinishLoad")
}
}私はあなたが同じ修正を使用することができると思います。
webViewDidFinishLoad
では、実際にはURLがpdfかどうかを確認してください。私の場合は私が期待していることを知っているので、私は単純なダムチェックを使いました。 urlがpdfにリンクしている場合は、Webビューをリロードして正しく表示し、スクロールできるようにする必要があります。
ここでは、目的Cの少し単純化されたコードを示します。これは、Swiftでも非常によく似ています。次のように試してみてください:
- (void)webViewDidFinishLoad:(UIWebView *)webView {
static BOOL isPdfReloaded = NO;
if (!isPdfReloaded && [webView.request.URL.absoluteString containsString:@".pdf"])
{
[webView reload];
isPdfReloaded = YES;
}
else
{
isPdfReloaded = NO;
}
}