Setting contentScaleFactor and contentsScale is actually the key, as @dbotha pointed out, however you need to go through the view and level hierarchy separately to cover all the internal CATiledLayer that actually render the text, you also need to consider the scale of the screen.
The implementation will be something like this:
- (void)updateForZoomScale:(CGFloat)zoomScale { CGFloat screenAndZoomScale = zoomScale * [UIScreen mainScreen].scale;
You can call this when zooming in (part of UIScrollViewDelegate ):
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale { [self updateForZoomScale:scale]; }
I filed a promotion request here: rdar: // 21443666 ( http://www.openradar.me/21443666 ). There is also an example project with a workaround attached.
source share