настройка делегата UIWebView scrollView вызывает ошибку - PullRequest
2 голосов
/ 29 февраля 2012

Итак, у меня есть следующий код:

 NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
    if ([currSysVer compare:@"5.0" options:NSNumericSearch] != NSOrderedAscending) {
        webScrollView = self.webView_.scrollView;
    } else {
        webScrollView = [self.webView_ defaultScrollView];
    }

webScrollView.delegate = self

, и когда я прокручиваю, он дает мне:

-[UIWebView scrollViewDidScroll:]: unrecognized selector sent to instance 0x8e8610

это не имеет никакого смысла, почему UIWebView вызывает scrollViewDidScroll\

Ответы [ 3 ]

1 голос
/ 01 марта 2012

Если вы посмотрите здесь , UIWebView соответствует UIScrollViewDelegate.По сути, он использует то же делегирование, что и прокручиваемый UIWebView (можно сказать, что это подкласс UIScrollView, хотя это явно не указано в документации, скорее всего, UIScrollView является частью WebView).

0 голосов
/ 19 сентября 2012

Я нашел решение для всех версий

UIScrollView* sv = nil;
    for (UIView* v in  _webview.subviews) {
        if([v isKindOfClass:[UIScrollView class]]){
            sv = (UIScrollView*) v;
            sv.scrollEnabled = NO;
            sv.bounces = NO;

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

UIWebView HAS-A a scrollView, делегатом которого он является, то есть метод scrollViewDidScroll: реализуется UIWebView, поскольку вы используете ссылку, которую UIWebView предоставляет для scrollView , вы теперь говорите, что будете обрабатывать эти обратные вызовы, включая scrollViewDidScroll:, и, очевидно, нет, поэтому, когда происходит вызов делегата, происходит сбой.

Почему вы пытаетесь назначить в качестве делегата веб-просмотра scrollview?, Это поведение уже реализовано. Я не уверен, что будет хорошо, если вы попытаетесь изменить это поведение, но в любом случае, если вы хотите стать делегатом scrollView, вам нужно реализовать протокол UIScrollViewDelegate, а затем реализовать необходимые методы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...