3
私はwebviewでscrollviewの代理人を実装しました。 iOS 5以降、デフォルトのスクロールビューはdidZoomイベントに応答しなくなりました。なぜこの動作ですか?iOS5でズームインしているUIWebviewがなぜ機能しないのですか?
私はwebviewでscrollviewの代理人を実装しました。 iOS 5以降、デフォルトのスクロールビューはdidZoomイベントに応答しなくなりました。なぜこの動作ですか?iOS5でズームインしているUIWebviewがなぜ機能しないのですか?
iOSのUIWebViewオブジェクトには、iOS5以降のwebView.scrollViewプロパティで公開された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];
}
}
もちろん、これはちょうどハックであり、完璧な解決策ではありません。