Webviewを使ったiPhone/iPad用アプリを作りました。Webview の上部をスクロールすると、パネルが開きます (Google アプリのように)。
Webview スクロール デリゲートを取得するには、そのコードを使用しています。
for(UIView * subView in webView.subviews){
if ([subView isKindOfClass:[UIScrollView class]]) {
webViewScroll = (UIScrollView *)subView;
webViewScrollDefaultDelegate = webViewScroll.delegate;
[webViewScroll setDelegate:self];
}
}
スクロールを管理するには、次の関数を使用します。
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
webview のスクロールから viewForZoomingInScrollView が何を返すべきかわからないため、デフォルトのデリゲートが必要です。
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
if(scrollView == webViewScroll){
return [webViewScrollDefaultDelegate viewForZoomingInScrollView:scrollView];
}
return nil;
}
iOS 4 では問題なく動作していますが、iOS 5 では webViewScroll.delegate を呼び出すと 0x0 (nil) が返され、ズームが機能しなくなりました...
私は何をすべきか?