iOS documention says, that the UIWebView class conforms to UIScrollViewDelegate. But an UIWebView instance does not call the scrollViewDidScroll
method of its controller. The delegate is set just right by
[webView setDelegate:self];
and webViewDidFinishLoad
is called successfully. The controller implements both delegates, UIWebViewDelegate and UIScrollViewDelegate, like this:
@interface WebviewController : UIViewController<UIWebViewDelegate, UIScrollViewDelegate>{
UIWebView *webView;
}
Browsing SO leads to that category solution:
@implementation UIWebView(CustomScroll)
- (void) scrollViewDidScroll:(UIScrollView *)scrollView{
[self.delegate scrollViewDidScroll: scrollView];
}
@end
That category approach does basically the same: Calling the delegate's scrollViewDidScroll method. So why does the the first approach not work?
Best Answer
My guess is you set up delegate only for UIWebView. Try setting delegate of scrollView.
it should be ok.