2011-03-27 96 views
2

如何在iOS drawRect中设置,修改和清除剪裁矩形,以将线条,文本,图像等的通用CG绘图剪裁到视图的一小部分?如何设置剪裁矩形或区域

是否可以使用一个更复杂的剪辑区域,它是一组矩形和圆圈的组合?

回答

4

您可以使用任意路径设置裁剪区域,而不限于矩形。以下是一些方法:

  1. 您可以绘制任意路径并使用它设置一个裁剪区域。例如:

    CGContextBeginPath(context); 
    //draw a path here 
    CGContextClosePath(context); 
    CGContextClip(context); 
    //following drawing on the context will be clipped 
    
  2. 如果要使用口罩图像设置裁剪区域,使用CGContextClipToMask方法。

有关更多用途,请参阅Apple的'QuartzDemo'示例项目。

+1

在许多情况下,要恢复旧的剪辑区域,当你完成。从CGContextSaveGState(context)开始;一旦所有的剪贴画完成,使用CGContextRestoreGState(context);. – Mike 2016-05-12 23:38:17

2

如果你只是想夹到一个矩形,你可以使用:

CGContextClipToRect(context, clipRect);