5

我编写了一个函数来使用 CGAffineTransformScale 放大 UIView。放大 2 倍后,所有文字看起来都非常模糊。如果图像一开始就具有更高的分辨率,则图像是可以的。有没有办法在放大后以适当的分辨率重新渲染所有文本?

编辑: 我找到了我的问题的部分解决方案:http: //markpospesel.wordpress.com/2012/04/03/on-the-importance-of-setting-contentscalefactor-in-catiledlayer-backed-views/

  • (void)didMoveToWindow { self.contentScaleFactor = 2.0; }

通过在 UIView 类别中添加上述方法,UILabel、UIButton 和大多数其他视图现在以高分辨率呈现。但是,这不会影响 UITextView 或 UIWebView。这两个视图中的任何一个中的文本仍然是模糊的。

所以新的问题是,如何在放大后以高分辨率重绘 UITextView 或 UIWebView?

4

1 回答 1

7

是的。您可以contentScaleFactor在 UIView 上设置 以使其以更高分辨率呈现其背景视图。不过,在视网膜设备上要小心;您要确保您的新contentScaleFactor产品至少是您的[[UIScreen mainScreen] scale]. (我会在你的动画之前设置它,所以它很流畅。)

编辑:要清楚,您可能需要在 2x 缩放示例contentScaleFactor中将文本视图本身设置为。[[UIScreen mainScreen] scale] * 2

于 2012-06-26T00:39:59.747 回答