3
webview에서 scrollview에 대한 대리자를 구현했습니다. iOS 5 이후 기본 스크롤 뷰는 didZoom 이벤트에 더 이상 응답하지 않습니다. 왜 이런 행동입니까?iOS5에서 확대/축소 UIWebview가 작동하지 않는 이유는 무엇입니까?
webview에서 scrollview에 대한 대리자를 구현했습니다. iOS 5 이후 기본 스크롤 뷰는 didZoom 이벤트에 더 이상 응답하지 않습니다. 왜 이런 행동입니까?iOS5에서 확대/축소 UIWebview가 작동하지 않는 이유는 무엇입니까?
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];
}
}
물론 이것은 해킹이며 완벽한 해결책은 아닙니다.