2011-04-17 59 views
0

想象一下,我想在给定的矩形中绘制自定义视图(例如100 x 100像素)。我的自定义视图的内容可能大于100 x 100。相反,有些内容未绘制,我想绘制100 x 100区域内的所有内容。例如,通常位于(125,140)的点现在将在点(25,40)处绘制。CGContext - “模”绘图?

有没有办法做到这一点,而不必(主要)修改绘图代码?请记住,我也绘制更复杂的形状,如贝塞尔路径。

回答

1

也许你可以通过CGContextScaleCTM(...)来扩展你的绘画空间。

e.x.

CGFloat sx, sy; 
sx = self.frame.size.width/desiredWidth; 
sy = self.frame.size.height/desiredHeight; 

CGContextScaleCTM(context, sx, sy); 

编辑:

由于科多以下建议,你可能会寻找CGContextTranslateCTM(...)这将抵消你的上下文坐标一些X/Y值空间。

+1

我猜ryyst是寻找CGContextTranslateCTM,它可以实现100像素的偏移量(而不是缩放输出)。 – Codo 2011-04-17 18:23:37

+0

@科多是的,我认为你是对的。更新了答案。谢谢。 – Sam 2011-04-17 18:35:08

+0

@Codo,Sam:我的例子的意思是,点(25,40)和(125,140)和(25,1240)将被绘制在同一个点上。这就是我称之为“模数”绘图的原因。 – ryyst 2011-04-17 20:03:07