将变换应用于视图不会导致重绘。它所做的就是缩放视图的图层,这是存储在GPU上的位图纹理。这将导致图形模糊。
在iPhone上绘制视图时 -drawRect: 被调用以提供视图层的内容。然后将该内容缓存为GPU上的纹理。
-drawRect:
他们在指南中指的是在绘制矢量图形时-drawRect:期间应用变换。如果你在那里使用转换(通过 CGContextConcatCTM() 等等,圆圈将以更大的比例平滑地绘制。但是,您还需要调整视图大小以反映这个更大的形状。我推荐使用 scale 自定义视图子类上的属性,您可以将其设置为不同的比例因子,并且可以处理调整视图的大小并急剧重绘其内容。
CGContextConcatCTM()
scale
这取决于你应用缩放转换时,我希望。如果先绘制它,然后进行缩放变换,那么它将看起来像素化(因为它在绘制后已经缩放)。如果在执行绘图例程之前执行了缩放,我希望它能按预期工作。
所以,是的,您正在使用基于矢量的命令来实现这一目标;我怀疑这是一个订购问题。你什么时候进行改造和绘画?
你可以尝试打电话 setNeedsDisplay 在变换之后,我不确定这是否会起作用,但它值得一试。
setNeedsDisplay