为什么UIWebView实例不调用scrollViewDidScroll?

ale*_*lex 12 iphone uiwebview ios

iOS文档说,UIWebView类符合UIScrollViewDelegate.但是UIWebView实例不会调用scrollViewDidScroll其控制器的方法.代表就在右边

[webView setDelegate:self];
Run Code Online (Sandbox Code Playgroud)

webViewDidFinishLoad成功调用.控制器实现委托,UIWebViewDelegate和UIScrollViewDelegate,如下所示:

@interface WebviewController : UIViewController<UIWebViewDelegate, UIScrollViewDelegate>{
    UIWebView *webView;
}
Run Code Online (Sandbox Code Playgroud)

浏览SO会导致该类别解决方案:

@implementation UIWebView(CustomScroll)
- (void) scrollViewDidScroll:(UIScrollView *)scrollView{
    [self.delegate scrollViewDidScroll: scrollView];
}
@end
Run Code Online (Sandbox Code Playgroud)

该类别方法基本相同:调用委托的scrollViewDidScroll方法.那么为什么第一种方法不起作用呢?

paw*_*opa 29

我的猜测是你只为UIWebView设置了委托.尝试设置scrollView的委托.

webView.scrollView.delegate = self
Run Code Online (Sandbox Code Playgroud)

应该没问题.