2011-03-15 7 views
0

Quartz를 지금 공부하고 있고 다음과 같은 데모를하고 싶습니다. 손가락이 iPhone 화면에서 움직일 때 붉은 색으로 트랙이 표시됩니다. 코드는 : Quartz2d로 iPhone에서 그림을 그리는 방법

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ 
UITouch *touch = [touches anyObject]; 
_firstPoint = [touch locationInView:self]; 
} 

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{ 
UITouch *touch = [touches anyObject]; 
_endPoint = [touch locationInView:self]; 
[self setNeedsDisplay]; 
_firstPoint = _endPoint; 
} 

는 여기
- (void)drawRect:(CGRect)rect { 

// Drawing code. 
CGContextRef _context = UIGraphicsGetCurrentContext(); 

CGContextSetRGBStrokeColor(_context, 1, 0, 0, 1); 
CGContextMoveToPoint(_context, _firstPoint.x, _firstPoint.y); 
CGContextAddLineToPoint(_context, _endPoint.x, _endPoint.y); 

CGContextStrokePath(_context); 
} 

, _firstPoint 및 _endPoint는 CGPoint이 위치를 기록한다. 그러나 트랙을 표시하지 않습니다. 나는 무엇이 문제인지 모른다. 팁을주십시오.

마지막으로, 나는 그런 종류의 App을 수행하는 것이 옳은지 컨설턴트에게 알려 드리고 싶습니다.

감사합니다.

답변

1

선을 구성하는 점들의 집합이 저장되는 지점에 대해서는이 예제에 저장되지 않습니다. 를 저장하기 위해,

그래

편집

, 난 그냥있는 NSMutableArray에 추가 할 것입니다.

뭔가

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    if (!_points) _points = [[NSMutableArray array] retain]; 
    UITouch *touch = [touches anyObject]; 
    [_points addObject:[NSValue valueWithCGPoint:[touch locationInView:self]]; 
} 
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch *touch = [touches anyObject]; 
    [_points addObject:[NSValue valueWithCGPoint:[touch locationInView:self]]; 
    [self setNeedsDisplay]; 
} 

것처럼 setNeedsDisplay는 점과 무승부 방법을 사용하는 곳 년대의 drawRect를 호출하는 것입니다.

+0

나는 그다지 이해하지 못한다. 나는 모든 포인트를 저장하고 그것을 모두 TouchesEnded에 그려야합니까? 나는 내가 움직이면 그 점을 스크린에 추가하여 선으로 칠할 것입니다. – scorpiozj

+0

나는 그것을 시도하고 작동합니다. 고맙습니다! 질문이 하나 더 있습니다.이 경우 이동하면 원본 컨텍스트의 일부가 영향을받습니다. 어떻게 피하는거야? – scorpiozj

1

당신이 그것을 알아 낸이 튜토리얼을 읽을 수 - 수 있습니다 그것은

http://www.ifans.com/forums/showthread.php?t=132024

하는 데 도움이 당신이 CGContextBeginPath (...)를 놓친 생각 먼저

행운!

+0

링크가 작동합니다.하지만 내 코드의 문제를 알고 싶습니다. 감사합니다. – scorpiozj

관련 문제