iOS 文档说,UIWebView类符合 UIScrollViewDelegate。但是 UIWebView 实例不会调用scrollViewDidScroll
其控制器的方法。代表正好由
[webView setDelegate:self];
并被webViewDidFinishLoad
成功调用。控制器实现了两个委托,UIWebViewDelegate 和 UIScrollViewDelegate,如下所示:
@interface WebviewController : UIViewController<UIWebViewDelegate, UIScrollViewDelegate>{
UIWebView *webView;
}
浏览 SO 会导致该类别解决方案:
@implementation UIWebView(CustomScroll)
- (void) scrollViewDidScroll:(UIScrollView *)scrollView{
[self.delegate scrollViewDidScroll: scrollView];
}
@end
该类别方法的作用基本相同:调用委托的 scrollViewDidScroll 方法。那么为什么第一种方法不起作用呢?