所以我有以下代码:
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 \
的原因没有任何意义答案 0 :(得分:1)
如果查看here,UIWebView符合UIScrollViewDelegate。本质上它使用相同的委托,因为UIWebView是可滚动的(你可能会说它是UIScrollView的子类,虽然它没有在文档中明确说明,但可能是UIScrollView是WebView的一部分。)
答案 1 :(得分:0)
UIWebView
HAS-A a scrollView
,它是委托,意味着scrollViewDidScroll
:方法由UIWebView
实现,因为您正在使用该引用UIWebView提供给它的scrollView
,你现在说你将处理这个回调,包括scrollViewDidScroll
:,显然你不是为什么当委托调用发生时它失败了。
为什么要尝试指定为webview scrollview的委托?,该行为已经实现。我不确定如果你试图改变那种行为会很好,但无论如何你想成为scrollView的委托,那么你必须实现UIScrollViewDelegate
协议,然后实现所需的方法。 / p>
答案 2 :(得分:0)
我找到了所有版本的解决方案
UIScrollView* sv = nil;
for (UIView* v in _webview.subviews) {
if([v isKindOfClass:[UIScrollView class]]){
sv = (UIScrollView*) v;
sv.scrollEnabled = NO;
sv.bounces = NO;
}
}