【问题标题】:Vector like drawing for zoomable UIScrollView用于可缩放 UIScrollView 的类似绘图的矢量
【发布时间】:2011-07-29 03:30:17
【问题描述】:

我有一个可缩放的 UIScrollView,其中包含一些 CATextLayers 和简单的 CALayers。 它们被渲染得很好,但问题是当它们被缩放时它们变得模糊。 (即使我重画它们)

当视图放大时,我有哪些选项可以使我的文本不模糊? 我应该使用其他东西吗?在CATextLayer/CALayer 中启用某些东西?欢迎任何想法;)

我使用 CALayers 是因为,正如文档中所建议的,CALayers 比 UIViews 轻,而且我有数百个。目前它工作顺利。我试过UIWebView,我的CALayer 版本更快;)

提前致谢。

【问题讨论】:

    标签: iphone uiscrollview calayer


    【解决方案1】:

    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];
    }
    

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

    【讨论】:

    • 很抱歉接受晚了。这就是我一直在寻找的。太棒了! ;)
    • 这不太行——它也会改变渲染文本的大小。当你放大时,文本会变小,当你缩小时,它会变大(所以我认为屏幕上使用了相同数量的像素?)。
    • 我不太清楚你的意思。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    • 2019-07-14
    • 1970-01-01
    • 2019-09-17
    • 2012-07-25
    • 1970-01-01
    • 2019-12-23
    相关资源
    最近更新 更多