I am making use of the UIWebView
to render some HTML. However, although the width of my webview is 320 my HTML is still shown full width and can be scrolled horizontally.
I want to achieve the same thing the native mail application achieves which is it fits all content within that width without zooming out – how does the native mail application render HTML like this?
Update
I thought making use of the viewport meta tag will help, but I couldn't get this to work.
This is what is happening:
As you can see the content does not fit the device width. I've tried so many combinations of viewport
meta tag. The below is an example of what happens when I try Martins suggestion.
Original HTML is can be found here.
The way this HTML is rendered by the native mail application is like so.
Best Answer
Here's what you do:
In your UI controller that owns the web view, make it a
UIWebViewDelegate
. Then where you set the URL to load, set the delegate as the controller:And finally implement the
webViewDidFinishLoad:
to correctly set the zoom level:This option will applicable from iOS 5.0 and >
I hope this helps...
Option B, you can try to alter the HTML (this example does the job but is less than perfect from an HTML parsing standpoint. I just wanted to illustrate my point. It does work for your example, and probably most cases. The inset of 40 can probably be detected programmatically, I didn't try to research that.