2010-11-05 3 views
5

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

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

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

ответ

2

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

for (id view in [self.webView subviews]){ 
    if ([view respondsToSelector:@selector(setContentInset:)]){ 
     [(UIScrollView *)view setContentInset:UIEdgeInsetsMake(0, 0, 44, 0)]; 
    } 
} 
0

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

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

+0

Весь смысл прозрачного инструментария - показать вещи под ним. Нет, я не хочу, чтобы UIWebView остановился прямо над панелью инструментов. – Emil

+0

Извините, тогда я думаю, я не понимаю, что вы пытаетесь сделать. – Ryan

+0

Сортировка Photos-app, просто чтобы я мог, чтобы нижний край «изображения» мог прокручивать границу панели инструментов! :) – Emil

3

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

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

Смотрит и работает!

4

Вы должны установить 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]; 
Смежные вопросы