2011-03-14 8 views
0

다음 코드를 사용하여 이동 한 터치를 기반으로 한 선을 MS 페인트에 그대로 그립니다. 괜찮 았어.하지만 끝난 터치 후 다시 선을 그릴 때 이전 선이 지워졌다. 도움이 필요하십니까?CGcontext의 마지막 내용이 저장되지 않습니까?

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    mouseSwiped = NO; 
    UITouch *touch = [touches anyObject]; 

    if ([touch tapCount] == 2) 
    { 
     //drawImage.image = nil; 
     //alphavalue = 0.0; 
     //isErase = TRUE; 
     //return; 
    } 

    lastPoint = [touch locationInView:self.view]; 
} 

답변

1

UIGraphicsBeginImageContext는 새로운 이미지 컨텍스트 당신이 touchesMoved 루틴을 입력 할 때마다 생성됩니다. 선의 시작과 끝 지점을 저장하여 다른 곳의보다 영구적 인 컨텍스트로 렌더링하거나 컨텍스트를 유지하는 다른 솔루션을 만들 수있는 방법을 찾아야합니다.

0

가) 당신은 drawRect:의 재정의 (override) 내에서 이미지를 그리려는) 그

B와 같은 그래픽 컨텍스트에 보유하지 않습니다. 또는 필요한 데이터를 잡고 touchesMoved에 그릴 필요가있는 rect를 무효화 할 수 있습니다. 그 다음은 숨긴 상태를 사용하여 drawRect:에서 그립니다.

최종선은 무효화해야하며 요청할 때 그립니다. 그 상황을 넘어선 그리기는 예측할 수없는 그림 결과 (자른 직사각형, 예기치 않은 순서 및 기타 동작)를 남기고 프로그램을 여러 번 그립니다.

+0

솔루션 pls –

0

먼저 CGBitmapContextCreate()를 사용하여 CGContext를 만든 다음 저장하고 모든 그림에 동일한 컨텍스트를 사용하십시오.

+0

자습서를 이해해 주실 수 없습니까? –

관련 문제