2016-03-25 13 views
0

swiftを使用してWebビューを使用してpdfをロードしようとしています。それはPDFの1ページだけを読み込むことができます、複数のページを下にスクロールすることはできません。私に何ができる?迅速なWebViewで完全なPDFを読み込み/スクロールできません。

インポートのUIKit

クラスのViewController:(いずれかを同梱しない)外部のPDFを表示しようとしたとき、私は同様の問題にぶつかってきた

答えて

0

の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; 
    } 
} 
関連する問題