Прозрачный UIToolBar поверх UIWebView - PullRequest
5 голосов
/ 06 ноября 2010

Я хочу, чтобы прозрачность UIToolBar превышала UIWebView, чтобы у пользователя была более широкая перспектива и обзор.

Однако, когда я это делаю, вы не видите нижней части страницы.,Я думал об установке смещения внизу, но этому нельзя доверять, поскольку уровень масштабирования может варьироваться (и каждый пиксель будет стоить меньше).

Как сделать прокрутку webViewи остановитесь на верхнем краю UIToolBar?

Ответы [ 4 ]

4 голосов
/ 03 июня 2014

Вы должны установить 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];
3 голосов
/ 06 ноября 2010

Я исправил это, установив вставку в UIScrollView-подпредставлении UIWebView:

for (id view in [webView subviews]){
    if ([view isMemberOfClass:[UIScrollView class]]){
        [(UIScrollView *)view setContentInset:UIEdgeInsetsMake(0, 0, 44, 0)];
    }
}

Выглядит и отлично работает!

2 голосов
/ 31 мая 2014

Я опробовал решение Emils, но оно не работает для iOS7, поскольку оно наследуется от UIWebViewScrollView.Итак, адаптировал свой код к следующему:

for (id view in [self.webView subviews]){
    if ([view respondsToSelector:@selector(setContentInset:)]){
        [(UIScrollView *)view setContentInset:UIEdgeInsetsMake(0, 0, 44, 0)];
    }
}
0 голосов
/ 06 ноября 2010

Похоже, вы не хотите, чтобы панель UIToolbar перекрывала ваш UIWebView. Вместо этого вы хотите установить их фреймы таким образом, чтобы UIWebView расширялся только там, где начинается UIToolbar.

Если вы настраиваете эти два вида программно, просто установите высоту рамки UIWebView равной размеру границ его родителя - высоту рамки UIToolbar. Если вы делаете это в InterfaceBuilder, просто перетащите нижний край UIWebView, чтобы изменить его размер, чтобы он остановился в начале UIToolbar, или измените его фрейм в инспекторе.

...