iOS文档表示,UIWebView类符合UIScrollViewDelegate协议。但是,UIWebView实例不会调用其控制器的scrollViewDidScroll方法。委托只需正确设置即可。
浏览SO会导致分类解决方案。
[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方法。那么为什么第一种方法不起作用呢?
webView.scrollView.delegate = self
? - pawelropaUIWebView
实例默认将其scrollViews
的委托设置为该实例? 看起来是这样的...否则类别方法就行不通了。 - alex