Поддержка iOS 4 и 5 делегатов Webview Scroll - PullRequest
0 голосов
/ 02 марта 2012

Я сделал приложение для iPhone / iPad, которое использует Webview.Когда я прокручиваю верхнюю часть моего веб-просмотра, открывается панель (как в приложении Google).

Чтобы получить делегата веб-просмотра, я использую этот код:

for(UIView * subView in webView.subviews){
    if ([subView isKindOfClass:[UIScrollView class]]) {
        webViewScroll = (UIScrollView *)subView;
        webViewScrollDefaultDelegate = webViewScroll.delegate;
        [webViewScroll setDelegate:self];
    }
}

Дляуправлять прокруткой, я использую эти функции:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView    
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate

Мне нужен делегат по умолчанию, потому что я не знаю, какой viewForZoomingInScrollView должен возвращаться из прокрутки веб-просмотра.

-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
    if(scrollView == webViewScroll){
        return [webViewScrollDefaultDelegate viewForZoomingInScrollView:scrollView];
    }
    return nil;
} 

Этохорошо работает в iOS 4. Но в iOS 5, когда я вызываю webViewScroll.delegate, он возвращает 0x0 (ноль), и масштабирование больше не работает ...

Что мне делать?

Ответы [ 2 ]

0 голосов
/ 26 марта 2012

Если вы включаете ARC в своем приложении для iOS 5, проверьте настройки свойств прокрутки. IBOutlet get (nonatomic, weak)

0 голосов
/ 26 марта 2012

Возможно, функциональность API немного изменилась между двумя версиями iOS.Я думаю, вы могли бы иметь условно запустить его немного по-другому в случае iOS 5?(Если вы можете заставить его работать должным образом в отдельном сегменте кода)

...