2011-03-25 5 views
11

어떻게 CGPath를 사용하여 선을 그립 수 있습니까?CGPath를 사용하여 선을 그립니다.

+1

어떻게 여기에 요청을 받고 있었는지 이야기하기가 어렵다? 질문에 대한 다른 해석은 질문자가 선을 나타내는 CGPath를 그리는 방법을 알고 싶어하는 것일 수 있습니까? – moonman239

+0

선을 그리는 데는 여러 가지 방법이 있습니다. Core Graphics, Quartz, OpenGL, SpriteKit, GLKit, SceneKit, GL Shaders 등이 있습니다. 우리는 OP의 의도/선호 프레임 워크를 추측해야합니다. – LearnCocos2D

+1

그가 CGPath를 참조하고 있기 때문에 Core Graphics를 사용하는 것이 안전하지 않습니까? –

답변

8

theView.h

#import <UIKit/UIKit.h> 

@interface theView : UIView { 
} 

@end 

theView.m는

#import "theView.h" 

@implementation theView 

-(void)drawRect:(CGRect)rect { 

    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor); 
    CGContextSetLineWidth(context, 2.0); 
    CGContextMoveToPoint(context,0,0); 
    CGContextAddLineToPoint(context,20,20); 
    CGContextStrokePath(context); 
} 

@end 

는 위에서 언급 한 파일을 만듭니다.
윈도우 기반 앱 : 새로운 UIView를 추가하고 해당 클래스를 뷰로 변경하십시오.
뷰 기반 앱 : UIView 클래스를 뷰로 변경합니다.
마지막으로 '빌드 및 실행'을 누르십시오.

결과 : 빨간색 대각선.

+0

경로를 공개하지 않습니까? –

+2

나는 당신이 그 질문에 대답했다고 생각하지 않습니다. OP는 라인을 나타내는 CGPath를 생성하고 CGPath를 그리는 방법을 알고 싶어합니다. – moonman239

27

경로가있는 선을 그리는 방법을 구체적으로 지정하지 않았으므로 예제를 제공 할 것입니다.

UIView의의의 drawRect에서 경로 왼쪽 상단 모서리 (iOS 용) 우측 하단 사이에 대각선을 그리기 :

- (void)drawRect:(CGRect)rect { 
    CGContextRef ctx = UIGraphicsGetCurrentContext(); 
    CGMutablePathRef path = CGPathCreateMutable(); 
    CGPathMoveToPoint(path, NULL, 0, 0); 
    CGPathAddLineToPoint(path, NULL, CGRectGetMaxX(rect), CGRectGetMaxY(rect)); 
    CGPathCloseSubpath(path); 
    CGContextAddPath(ctx, path); 
    CGContextSetStrokeColorWithColor(ctx,[UIColor whiteColor].CGColor); 
    CGContextStrokePath(ctx); 
    CGPathRelease(path); 
} 
관련 문제