いつもお世話になっております。
掲題のことで質問させてください。
WKWebViewを使ってブラウザのように表示したいのですが、
シミュレータを用いて確認してみると、iPhone7ではうまく表示されるのですが7Plus、iPad Air2などで確認するとナビゲーションバーとwebviewの間で余白が発生してしまいます。
iPhone5sにいたっては逆に余白どころかwebviewのframeのy座標が画面上より上になっている始末です。
こちらの方でも調べた結果、対象のViewControllerのInterface BuilderのところでAdjust Scroll View Insetsのチェックをはずすと余白が発生しなくなる、ということがわかりチェックをはずしてみたのですが、余白は消えませんでした。
webviewのframeのy座標を変えてもある端末ではうまく表示されても他の端末では失敗してしまうため根本の解決にはなりませんでした。
どの端末でも余白がなくなるような対処方法をご存知の方がいらっしゃいましたら、ご教示のほどよろしくお願いします。
追記:
webViewの生成時のコードになります。
Swift
1class Browser:WKUIDelegate, WKNavigationDelegate { 2 var browser:WKWebView! 3 4 override func viewDidLoad() { 5 super.viewDidLoad() 6 self.browser = WKWebView(frame:CGPoint.zero) 7 self.browser.navigationDeligate = self 8 self.view.addSubview(self.browser) 9 } 10 11 //ここでwebviewをリサイズする 12 override func viewDidLayoutSubviews() { 13 self.browser.frame = CGRect(origin: CGPoint.xero, size: self.view.frame.size) 14 } 15 16}
環境:
swift3, Xcode8.3
WebViewはどうやって配置しているのでしょうか?コードなり制約なりを書いて下さい。
コードは手で打たずにコピペして下さい。現在のコードはエラーが多数発生します。で、エラーを適当に修正して試してみましたが、こちらでは余白が空くような症状は発生しませんでした。とりあえず、viewDidLayoutSubviewsにsuper.viewDidLayoutSubviews()を追加するのと、frame設定後にprint(self.browser.frame)を追加して出力を教えて下さい。
WebViewをStoryboard上で配置するという選択肢はないのでしょうか?あと、これはUniversalアプリですか?
WKWebViewはたしかストボー使えなかったかと。
申し訳ありません。コードについてはコピペができる状態ではありませんでした。手打ちのせいでエラーのでるコードになってしまいすみませんでした・・・。wkwebviewはstoryboardからは配置できないようです。アプリについてはUniversalアプリです。
fromageblancさん、お久しぶりな気がw WKWebView無いんですね‥。Xcode9では使えるようなので移行するか、Xcode8のままでやるとすれば、(a)コードで制約付ける。(b)ダミーのViewに制約を付けて、コード側でダミーViewの上にWKWebViewを乗せる。などでしょうか。ちょっとUniversalアプリにして試してみます。
回答1件
あなたの回答
tips
プレビュー