Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UIWebView does not scale content to fit

I have a webview which is the top window in the hierarchy and has been declared as shown below. However, it does not scale pages to fit. Pages are top left aligned, but are not scaled, despite the scalesPageToFit property being set to YES. Any help would be greatly appreciated.

webLookupView = [[UIWebView alloc] initWithFrame:CGRectMake(16, 63, 289, 327)]; webLookupView.backgroundColor = [UIColor lightGrayColor]; webLookupView.dataDetectorTypes = UIDataDetectorTypeAll; webLookupView.scalesPageToFit = YES; 
like image 266
RunLoop Avatar asked Oct 02 '09 20:10

RunLoop


2 Answers

iOS5 gives a better solution

call this from webViewDidFinishLoad

- (void)zoomToFit {      if ([theWebView respondsToSelector:@selector(scrollView)])     {         UIScrollView *scrollView = [theWebView scrollView];          float zoom = theWebView.bounds.size.width / scrollView.contentSize.width;         scrollView.minimumZoomScale = zoom;         [scrollView setZoomScale:zoom animated:YES];     } } 
like image 109
Confused Vorlon Avatar answered Oct 09 '22 01:10

Confused Vorlon


I have subsequently discovered that some web pages are correctly scaled, but some are not. For web pages which are not properly scaled, javascript can be used to control zooming as follows:

NSString *jsCommand = [NSString stringWithFormat:@"document.body.style.zoom = 1.5;"]; [webLookupView stringByEvaluatingJavaScriptFromString:jsCommand]; 
like image 33
RunLoop Avatar answered Oct 09 '22 00:10

RunLoop