在我的项目中,我需要使用石英绘画绘制几百个矩形。我确实有这样的代码
-(void)RenderRectangles:(NSArray*)rectangles
fillColor:(UIColor*)fillColor
strokeColor:(UIColor*)strokeColor
strokeThickness:(float)strokeThickness;
{
CGContextRef context = UIGraphicsGetCurrentContext();
UIGraphicsPushContext(context);
CGContextSetStrokeColorWithColor(context, [strokeColor CGColor]);
CGContextSetLineWidth(context, strokeThickness);
for (NSValue *vRect in rectangles) {
CGContextAddRect(context, [vRect CGRectValue]);
}
CGContextStrokePath(context);
CGContextSetFillColorWithColor(context, [fillColor CGColor]);
for (NSValue *vRect in rectangles) {
CGContextFillRect(context, [vRect CGRectValue]);
}
UIGraphicsPopContext();
}
它工作正常,但我只是想知道是否可以只使用一个循环来做到这一点?或者有更好的方法来描边和填充矩形集合吗?
THX
答案 0 :(得分:0)
创建单个路径更有效。查看以下函数以使用矩形创建单个路径,然后您可以填充并描绘相同的路径,而不需要重新创建它:
CGPathCreateMutable()
CGPathAddRect()/CGPathAddRects()
CGContextAddPath()
...并且为了提高性能,请记住如果要多次绘制它,请缓存此路径!