2011-07-26 4 views
1

나는 기본적으로 다음과 같이 표시됩니다 그래프에 대한 전설을 만들고있어 :코어 그래픽으로 사각형을 그린다거나 png를 포함합니까?

[ ] Line 1 
[ ] Line 2 
[ ] Line 3 

왼쪽에있는 상자는 그래프의 라인과 같은 색해야합니다.

어쨌든 코어 그래픽을 사용하여 상자를 그리거나 사각형 대신 김프로 일부 PNG를 만들고 포함 시키면됩니다.

+0

나는 단지 그것을 png하고 싶다. – Ian

+1

CPU에서 CG를 사용하는 것이 더 빠릅니다. 다시 개발하는 시간이 빠르기 때문에 PNG로 처리하는 것이 더 빠릅니다. – bshirley

답변

7

각 범례에 UIView를 사용하고 배경색을 원하는 색으로 설정하십시오.

+0

그걸 생각하지 않았어. – Randall

0

그림 상자는 스냅입니다! 코어 그래픽스는 매일 무료로 망막 지원을 받으러 갈 것입니다.

으로는 UIKit에게 클래스 만 사용하여 당신이 그것을 할 수있는이 예에서 볼 수

:

// Setup colors 
[myBoxColor setFill]; 
[myBoxBorderColor set]; 
// Setup a path for the box 
UIBezierPath* path = [UIBezierBath bezierPathWithRect:rectOfTheBox]; 
path.lineWidth = 2; 
// Draw! 
[path fill]; 
[path stroke]; 

한 경고를; 획은 경로의 가장자리를 선의 중심으로 사용하여 채 웁니다. 따라서 1 포인트 선 너비의 통합 rect로 패스를 그리면 흐릿한 선이 생깁니다. 당신이이 해결할 수

는이 같은 일을하여 테두리 1 점 라인을 원하는 : iOS에서

CGRect strokeRect = UIEdgeInsetsInsetRect(rectOfTheBox, 
              UIEdgeInsetsMake(0.5f,0.5f,0.5f,0.5f)); 
UIBezierPath* path = [UIBezierPath bezierPathWithRect:strokeRect]; 
[path stroke]; 
0

는, 코어 그래픽 사용이 매우 간단합니다. 보기의 drawRect: 방법에서, 단지 사각형을 그릴 이렇게 :이 도움이

- (void)drawRect:(CGRect)frame { 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextSetRGBFillColor(context, 0.5, 0.5, 0.5, 1); // gray 
    CGContextFillRect(context, CGRectMake(10, 10, 20, 20)); // our rect is {10,10,20,20) 
    // draw a line 
    CGContextSetRGBStrokeColor(context, 1, 0, 0, 1); 
    CGContextBeginPath(context); 
    CGContextMoveToPoint(context, startX, startY); 
    CGContextAddLineToPoint(context, endX, endY); 
    CGContextStrokePath(context); 
} 

희망을!

1

두 방법 모두 충분히 빠르지 만 차이가 없어야합니다. 그러나 Core Graphics를 사용하면 훨씬 더 유연한 이점을 얻을 수 있습니다. 나중에 추가 색상이 필요하다고 결정할 때 또한 PNG 파일을 포함 할 필요가 없으므로 앱 크기가 작아집니다.

관련 문제