UIWebviewの拡大がiOS5で機能しない理由

私はwebviewでscrollviewの代理人を実装しました。 iOS 5以降、デフォルトのスクロールビューはdidZoomイベントに応答しなくなりました。なぜこの動作ですか?

3

1 答え

iOSのUIWebViewオブジェクトには、webView.scrollViewプロパティでiOS5以降に公開されたscrollviewオブジェクトがあります。以前は、webViewはscrollviewの代理人でした。 iOS5 webViewはいくつかのメソッドに対してデリゲートであり、scrollviewは他のメソッドに対してデリゲートです。

-(void) scrollViewDidZoom:(UIScrollView *)scrollView
{   

   if ([self->oldScrollViewDelegate respondsToSelector:@selector(scrollViewDidZoom:)])
   {
        //NSLog(@"forwarding scrollViewDidZoom");
    [self->oldScrollViewDelegate scrollViewDidZoom:scrollView];
   }
    else if ([self.webView respondsToSelector:@selector(scrollViewDidZoom:)]) 
   {
        //NSLog(@"forwarding scrollViewDidZoom");
    [self.webView scrollViewDidZoom:scrollView];
   }

}

もちろん、これは単なるハックであり、完璧な解決策ではありません。

1
追加された