Основной графический цветовой контекст - PullRequest
1 голос
/ 08 февраля 2011

Итак ... У меня есть это приложение, которое рисует фигуры, а затем пользователь может их раскрасить.Я сделал панель вкладок, которая имеет 4 фигуры, и при нажатии на одну из них рисуется соответствующая фигура.Я взял идею рисования из QuartzDemo.Итак, у меня есть общий класс формы, а затем подклассы 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

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

Ты заранее.

1 Ответ

4 голосов
/ 08 февраля 2011

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

@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);
...