iOS のドキュメントによると、UIWebViewクラスは UIScrollViewDelegate に準拠しています。scrollViewDidScroll
しかし、UIWebView インスタンスはそのコントローラーのメソッドを呼び出しません。デリゲートは
[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 メソッドを呼び出します。では、なぜ最初のアプローチがうまくいかないのでしょうか?