2016-09-07 11 views
0

iosでPDFが表示された状態で簡単なWebビューを実装しました.2つのことをしたい: - webviewに表示されているときにpdf docの灰色のパディングエリアを削除する ボタンの座標を指定して、pdfファイル上の特定の場所にボタンを表示するUIWebView webViewDidStartLoadメソッドが迅速に呼び出されない

上記の2つの問題について、私はSOのコードを見つけ、自分のニーズに変更しました。ここでは、これまで私が持っているコード(ビューコントローラ)

class DocAreaController: UIViewController, UIWebViewDelegate{ 


@IBOutlet var myWebView: UIWebView! 


override func viewDidLoad() { 
    super.viewDidLoad() 

    myWebView.scrollView.scrollEnabled = false 
    myWebView.scrollView.bounces = false 
    myWebView.scrollView.pagingEnabled = true 
    myWebView.userInteractionEnabled = true 
    myWebView.delegate = self 

    func webViewDidStartLoad(myWebView: UIWebView){ 
     let paddingScript = "document.body.style.margin='0';document.body.style.padding = '0'" 
     let result = myWebView.stringByEvaluatingJavaScriptFromString(paddingScript) 
     debugPrint("method called") 

     let btn: UIButton = UIButton(frame: CGRectMake(188, 340, 46, 30)) 
     btn.backgroundColor = UIColor.cyanColor() //.colorWithAlphaComponent(0.5) 
     btn.userInteractionEnabled = false 
     btn.tag = 1    // change tag property 
     myWebView.addSubview(btn) // add to view as subview 

    } 


    // Get the document's file path. 
    let filepath = (NSBundle.mainBundle().pathForResource("Reader", ofType: "pdf"))! as String 

    // Create an NSURL object based on the file path. 
    let url = NSURL.fileURLWithPath(filepath) 

    // Create an NSURLRequest object. 
    let request = NSURLRequest(URL: url) 

    // Load the web viewer using the request object. 
    myWebView.loadRequest(request) 

} 

}

はある。しかしwebViewDidStartLoadメソッドが呼び出さ取得されていません。コードとストーリーボードの両方でwebviewの代理人を設定しました。私は何が欠けていますか?

+0

なぜあなたの関数webViewDidStartLoadはviewDidLoadメソッド内にありますか?コンパイルエラーはありませんでしたか? – jo3birdtalk

+0

ご返信ありがとうございます。いいえ、エラーはありません。それはどこにあるべきですか? @ jo3birdtalk – Nilo0f4r

答えて

0

viewDidLoadメソッドからwebViewDidStartLoadをシフトします。 viewDidLoadの後に配置してください。

override func viewDidLoad() { 
    super.viewDidLoad() 

    myWebView.scrollView.scrollEnabled = false 
    myWebView.scrollView.bounces = false 
    myWebView.scrollView.pagingEnabled = true 
    myWebView.userInteractionEnabled = true 
    myWebView.delegate = self 

    // Get the document's file path. 
    let filepath = (NSBundle.mainBundle().pathForResource("Reader", ofType: "pdf"))! as String 

    // Create an NSURL object based on the file path. 
    let url = NSURL.fileURLWithPath(filepath) 

    // Create an NSURLRequest object. 
    let request = NSURLRequest(URL: url) 

    // Load the web viewer using the request object. 
    myWebView.loadRequest(request) 

} 


func webViewDidStartLoad(myWebView: UIWebView){ 
     let paddingScript = "document.body.style.margin='0';document.body.style.padding = '0'" 
     let result = myWebView.stringByEvaluatingJavaScriptFromString(paddingScript) 
     debugPrint("method called") 

     let btn: UIButton = UIButton(frame: CGRectMake(188, 340, 46, 30)) 
     btn.backgroundColor = UIColor.cyanColor() //.colorWithAlphaComponent(0.5) 
     btn.userInteractionEnabled = false 
     btn.tag = 1    // change tag property 
     myWebView.addSubview(btn) // add to view as subview 

    } 
+0

ありがとう!これは正解です。 – Nilo0f4r

関連する問題