This seems to be a bug with the Apple UIDocumentView private class. viewportConfigurationsDidChange stuck on the zoom scale after activating the keyboard, which is set when _setDocumentScale called. For example, when it should go to 1.333, it is stuck at 1.0.
It is "fixed" by writing a category for UIWebDocumentView, which is a subclass of UIDocumentView that does not implement these methods (so you can call super).
Despite all my efforts, I could not find a way to fix this using the open API. I tried messing around with the zoom level of UIScrollView, but I was never able to get this to work correctly. The content will be biased and other strange things will happen. Even tried to do this using JavaScript.
Thus, the only way to fix this is through a category in private classes.
It will never be approved in the app store.
So, until Apple fixes this, SOL.
source share