Контекст основного графического цвета

Итак... У меня есть приложение, которое рисует фигуры, а затем пользователь может их раскрасить. Я сделал вкладку с 4 фигурами, и при нажатии одной из них рисуется соответствующая фигура. Идею рисования я взял из кварцевого демо. Итак, у меня есть общий класс формы, а затем подклассы формы shape_name. Вот код квадрата.

@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

При нажатии на фигуру появляется цветное меню, и я хочу изменить цвет при нажатии кнопки из меню. Как я могу это сделать.

Ты заранее.


person Toncean Cosmin    schedule 08.02.2011    source источник


Ответы (1)


Я предлагаю добавить свойство в ваш базовый класс формы следующим образом:

@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);
person Costique    schedule 08.02.2011