I'm trying to find a way to detect how zoomed in someone is on a web app so that when they click to pull up a menu, the menu stays the same size regardless of the zoom. To do that, I need to be able to scale the size of the menu appropriately relative to the zoom. Is there a way to do this?
First, all UIWebView
has as a UIScrollView
subview. So, in order to get it you could do the following:
for (UIView * v in [_webView subviews]) {
if ([v isKindOfClass:[UIScrollView class]]) {
UIScrollView * s = (UIScrollView*)v;
// use the scrollview
}
}
After that you can use the UIScrollView
to find out the zoom scale. Unfortunately, the property zoomScale
doesn't tell us, in this case, what we want, but we can use the contentSize
and the frame
of the scrollView, as the following:
CGFloat zoomScale = s.contentSize.width / s.frame.size.width;
After that, I suppose you want to tell your javascript code about this zoomScale. You could use the following code:
[_webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"yourJSZoomScaleVar = %f;", zoomScale]];
Hope it helps!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With