Как изменить цвет кисти при нажатии кнопки? - PullRequest
1 голос
/ 12 ноября 2011

Я разрабатываю приложение для рисования для моей первой попытки разработки под iOS.

Я пытаюсь создать цветовую палитру, которая изменит цвет моей кисти при нажатии кнопки, но я не знаю как.У меня уже есть кнопки UIB, которые подключены к его эталонным выходам и отправили событие, но мои коды не работают.

здесь:

    - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    touchSwiped = YES;
    redAmt = 0;
    blueAmt = 0;
    greenAmt = 0;
    UITouch *touch = [touches anyObject];   
    CGPoint currentTouch = [touch locationInView:self.view];
    currentTouch.y -= 20;
    UIGraphicsBeginImageContext(self.view.frame.size);
    [touchDraw.image drawInRect:CGRectMake(0, 0, touchDraw.frame.size.width, touchDraw.frame.size.height)];
    CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 35.0);
    CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), redAmt, blueAmt, greenAmt, 1.0);
    CGContextBeginPath(UIGraphicsGetCurrentContext());
    CGContextMoveToPoint(UIGraphicsGetCurrentContext(), endingPoint.x, endingPoint.y);
    CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentTouch.x, currentTouch.y);
    CGContextStrokePath(UIGraphicsGetCurrentContext());
    touchDraw.image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    endingPoint = currentTouch;

    touchMoved++;

    if (touchMoved == 10) {
        touchMoved = 0;
    }
}

    -(IBAction)blackInk:(id)sender
{
    redAmt = 0;
    blueAmt = 0;
    greenAmt = 0;
}

-(IBAction)blueInk:(id)sender
{
    redAmt = 0;
    blueAmt = 0;
    greenAmt = 1;
}

-(IBAction)redInk:(id)sender
{
    redAmt = 1;
    blueAmt = 1;
    greenAmt = 0;
}

-(IBAction)greenInk:(id)sender
{
    redAmt = 0;
    blueAmt = 1;
    greenAmt = 0;
}

Ответы [ 2 ]

0 голосов
/ 12 ноября 2011

Не следует пытаться рисовать внутри сенсорного делегата. Нарисуйте позже, когда ОС вызовет ваш drawRect. Установите или поставьте в очередь некоторые переменные состояния внутри делегата касания о том, что должно быть нарисовано позже.

0 голосов
/ 12 ноября 2011

Стоп сбросить ваш цвет на черный в верхней части метода. Удалите эти строки:

redAmt = 0;
blueAmt = 0;
greenAmt = 0;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...