Я выполнил делегирование для scrollview в webview. Поскольку iOS 5 по умолчанию scrollview больше не отвечает на событие didZoom. Почему это поведение?
Объект UIWebView в iOS имеет объект 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];
}
}
Конечно, это просто хак и не идеальное решение.