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の代理人を設定しました。私は何が欠けていますか?
なぜあなたの関数webViewDidStartLoadはviewDidLoadメソッド内にありますか?コンパイルエラーはありませんでしたか? – jo3birdtalk
ご返信ありがとうございます。いいえ、エラーはありません。それはどこにあるべきですか? @ jo3birdtalk – Nilo0f4r