核心图形颜色上下文

时间:2011-02-08 14:24:32

标签: ios core-graphics cgcontext

所以...我有这个应用程序绘制形状,然后用户可以着色它们。我做了一个有4个形状的tabbar,当点击一个时,会绘制相应的形状。我从quartzDemo中获取了绘图的想法。所以我有一个形状通用类,然后是shape_name形状的子类。这是Square的代码。

@implementation Square

- (void)drawInContext:(CGContextRef)context {
    CGContextSetRGBStrokeColor(context, 0.0, 0.0, 0.0, 1.0);
    CGContextSetLineWidth(context, 1.0);    
    CGContextBeginPath(context);  
    CGContextMoveToPoint(context, 1, 1);
    CGContextAddLineToPoint(context, 1, 79);
    CGContextAddLineToPoint(context, 79, 79);
    CGContextAddLineToPoint(context, 79, 1);
    CGContextAddLineToPoint(context, 1, 1);
    CGContextClosePath(context);
    CGContextStrokePath(context);

}

@end

当点击一个形状时,会出现一个颜色菜单,我想在点击菜单中的按钮时更改颜色。我怎么能这样做。

提前Ty。

1 个答案:

答案 0 :(得分:4)

我建议在你的基础形状类中添加一个属性,如下所示:

@property(nonatomic,retain) UIColor* fillColor;

在菜单实现中,将属性的值设置为用户选择的UIColor对象,并发送形状setNeedsDisplay。然后按如下方式修改drawInContext:方法:

CGContextSetFillColorWithColor(context, self.fillColor.CGColor);
// ... your current drawing code goes here
// replace the last line, with CGContextStrokePath(), with this:
CGContextDrawPath(context, kCGPathFillStroke);