我已经实现了webview中的scrollview的委托。从iOS 5开始,默认滚动视图不再响应didZoom事件。为什么会这样呢?

最佳答案

iOS中的UIWebView对象具有一个scrollview对象,该对象从iOS5起使用webView.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];
   }

}


当然,这只是一个hack,并不是完美的解决方案。

关于uiwebview - 为什么在iOS5中无法放大UIWebview?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7920831/

10-11 11:24