ユーザーがより広い視野と概観を得られるように、 を透明にUIToolBar
したい。UIWebView
ただし、これを行うと、ページの下部が表示されません。一番下にオフセットを設定することを考えましたが、ズームのレベルが異なる可能性があるため、信頼できません (各ピクセルの価値が低くなります)。
webView
スクロールして上端で停止するにはどうすればよいUIToolBar
ですか?
ユーザーがより広い視野と概観を得られるように、 を透明にUIToolBar
したい。UIWebView
ただし、これを行うと、ページの下部が表示されません。一番下にオフセットを設定することを考えましたが、ズームのレベルが異なる可能性があるため、信頼できません (各ピクセルの価値が低くなります)。
webView
スクロールして上端で停止するにはどうすればよいUIToolBar
ですか?
contentInset と scrollIndicatorInsets を設定する必要があります。scrollIndicatorInsets を設定しないと、スクロール インジケーターが正しく表示されない UIToolbar の下に表示されます。
float toolbarHeight = toolbar.frame.size.height;
UIEdgeInsets insets = webView.scrollView.contentInset;
insets.bottom = toolbarHeight;
[webView.scrollView setContentInset:insets];
UIEdgeInsets indicatorInsets = webView.scrollView.scrollIndicatorInsets;
indicatorInsets.bottom = toolbarHeight;
[webView.scrollView setScrollIndicatorInsets:indicatorInsets];
UIWebView の UIScrollView-subview にインセットを設定して修正しました。
for (id view in [webView subviews]){
if ([view isMemberOfClass:[UIScrollView class]]){
[(UIScrollView *)view setContentInset:UIEdgeInsetsMake(0, 0, 44, 0)];
}
}
見た目も機能も素晴らしい!
UIToolbar が UIWebView に重ならないように思えます。代わりに、UIWebView が UIToolbar の開始位置までしか拡張されないようにフレームを設定します。
これら 2 つのビューをプログラムで設定する場合は、UIWebView のフレームの高さを親の境界のサイズ (UIToolbar のフレームの高さ) に設定するだけです。InterfaceBuilder でこれを行っている場合は、UIWebView の下端をドラッグしてサイズを変更し、UIToolbar の開始位置で停止するか、インスペクターでフレームを変更します。