我已经实现了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/