2010-05-14 2 views
0

Этот код используется для рисования в моем приложении. Поэтому у меня есть проблема, если я рисую с альфа-свойствами = 1. Это очень хорошо, но если я изменил альфа-свойство = 0,2, то моя краска не очень хорошая. Как лучше сделать с альфа-характеристикой = 0.2.Проблема при рисовании линии Quartz 2D с альфа-характеристикой <1.0 на iPhone

http://www.flickr.com/photos/[email protected]/page1/

Розыгрыш с альфа = 1: Это хорошо Draw с альфа = 0,2: Это плохо

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 
if ([self.view superview] && (headerView.frame.origin.y == -30)) { 
    mouseSwiped = YES; 

    UITouch *touch = [touches anyObject]; 
    CGPoint currentPoint = [touch locationInView:self.view]; 
    currentPoint.y -= 20; 



    UIGraphicsBeginImageContext(self.view.frame.size); 

    CGContextRef context = UIGraphicsGetCurrentContext(); 

    [drawImage.image drawInRect:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
    CGContextSetLineCap(context, kCGLineCapRound); 
    CGContextSetLineWidth(context, currentBrushProperty.brushSize); 
    CGContextSetRGBStrokeColor(context, [self red], [self green], [self blue], currentBrushProperty.brushTransparency); 
    CGContextSetRGBStrokeColor(context, 1.0, 0.0, 0.0, 1.0); 

    CGContextBeginPath(context); 
    CGContextMoveToPoint(context, lastPoint.x, lastPoint.y); 
    CGContextAddLineToPoint(context, currentPoint.x, currentPoint.y); 

    CGContextStrokePath(context); 
    drawImage.image = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    lastPoint = currentPoint; 

}} 

ответ

0

Ваша проблема заключается в том, что вы рисуете ряд полупрозрачных кругов - по одному для каждого места, на котором зарегистрировано касание. Самое легкое решение может состоять в том, чтобы рисовать со 100% альфой, а затем отрегулировать альфа цветной области до нужной вам альфы.