0

我有一个自定义 UIView。在这个视图中,我重写了 drawRect 来绘制一些路径和一些文本。当检测到点击时,视图正在放大

 - (void)tapDetected:(UITapGestureRecognizer *)sender {
     float zoom = 3.;
     sender.view.transform = CGAffineTransformScale(sender.view.transform, zoom, zoom);
     ...
 }

缩放工作正常,但是当我放大时线条和文本变得像素化。我希望线条宽度和文本大小保持不变,即重新光栅化,所以我在上述方法的末尾插入了一个 setNeedsDisplay,但是这没有效果,不工作。

有什么帮助吗?

谢谢你。

4

2 回答 2

0

尝试更改相关contentScale图层的 。这对我的路径有效。

于 2012-11-04T15:31:47.347 回答
0

我的地图查看器遇到了类似的问题,所以我制作了一个独立的演示项目。放大时我得到了非常重的抗锯齿。基本上,要在放大时重新光栅化,你必须这样玩rasterizationScale

    sublayer.rasterizationScale = scale;
    sublayer.contentsScale = scale;

示例项目和自述文件在这里:https ://bitbucket.org/robvanderveer/scrollviewdemo

于 2013-06-09T13:18:28.647 回答