所以...我有这个应用程序绘制形状,然后用户可以着色它们。我做了一个有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。答案 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);