矢量像可缩放的UIScrollView绘图

时间:2011-04-04 12:24:26

标签: iphone uiscrollview calayer

我有一个可缩放的UIScrollView,里面有一些CATextLayer和简单的CALayer。 它们被渲染得很好,但问题是当它们被缩放时它们会变得模糊。 (即使我重绘它们)

当缩放视图时,我的选项是什么让我的文字不模糊? 我应该用另一件东西吗?在CATextLayer / CALayer中启用某些内容?欢迎任何想法;)

我正在使用CALayer,因为正如文档中所建议的那样,CALayerUIViews轻,我有数百个。目前它运作顺利。我尝试使用UIWebView,我的CALayer版本更快;)

提前致谢。

1 个答案:

答案 0 :(得分:16)

iOS在放大之前光栅化文本,这就是它如此模糊的原因。您只需要修复CATextLayer的一个属性contentsScale,即可在缩放后获得更高质量的渲染。实现此UIScrollViewDelegate方法:

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView
                       withView:(UIView *)view
                        atScale:(float)scale
{
    [CATransaction begin];
    [CATransaction setValue:[NSNumber numberWithBool:YES] 
                     forKey:kCATransactionDisableActions];
    uglyBlurryTextLayer.contentsScale = scale;
    [CATransaction commit];
}

这告诉图层使用更多像素来渲染文本,并在进行特定更改时禁用Core Animation。