WKWebViewにUIToolbarを正しく載せたい
https://gyazo.com/b6252492e613cb46fe9d8cb2043de9ed
赤と緑のバーがツールバーの下にも続いていることがわかる
「そんなん簡単じゃん、Safe Area ガン無視してview全面に貼ってadditionalSafeAreaInsets 使ったらいいでしょ」
これをやるとWKWebViewのsafeAreaInsetsが広がる
すると web page の Safe Area も広がる
何が起きるか?
Safe Area 対応してる Web サイトで Safe Area の外に広げたいコンテンツがツールバーにも書かれてしまう
(あとでスクショを貼る)
これは Safari の挙動と異なる
これじゃだめ🙅♀️
なんかうまくいかない
Safariでページを拡大した時って position:fixed; がなんかいい感じにスクロールに付いてくるようになる
が、拡大してないのにそうなってしまう
原因不明
ちなみに _setObscuredInsets: を使わないと obscuredInsets ありますフラグが立たないので注意
単に setValueするだけではダメ
「webview.scrollView.clipsToBounds=falseすればそれっぽくなるよ」
たしかになる!
が、ページの最初と最後だけページの背景色でなくその裏にあるViewの?背景色が使われる
ので、Safariと微妙に違う挙動になる
ダークテーマだとわかりやすい
比較
ページの最初
https://gyazo.com/b6252492e613cb46fe9d8cb2043de9edhttps://gyazo.com/c03b5956a8fc2a511386af3ba53b2c08
ページの最後
https://gyazo.com/8181638c9f1900bf871fe37c5b08c992https://gyazo.com/9e46a9e6d78df6b0cc62b8f33ec722f7
左側が本物のSafari、右側が自作Safariもどき
ページの最初では自作のほうはナビゲーションバーの背景が真っ黒になってしまっている
本物Safariの方は裏の白が透けてる
ページの最後では自作の方はツールバーの背景が真っ黒になってしまっている
本物Safariの方は裏の白が透けてる
惜しい!
まあとりあえずこれで妥協することにする