2009-04-02 6 views
3

내 iPhone 응용 프로그램에서 Mail 응용 프로그램과 비슷한 타원을 가지고 싶습니다. 참조 용 스크린 샷은 다음과 같습니다. http://dl-client.getdropbox.com/u/57676/screenshots/ellipse.pngiPhone 응용 프로그램에서이 타원을 그릴 수있는 가장 좋은 방법은 무엇입니까?

궁극적으로 숫자 값이 가운데에있는 타원을 원합니다. 이 작업에 UIImage를 사용하는 것이 가장 좋습니까? 아마도 Quartz로 그릴 때 오버 헤드가 적습니까? Quartz로 끝내면 누구나 그것을 그리기위한 솔루션을 표시 할 수 있습니까?

답변

9

아, 둥근 사각형. 그렇게 그리기가 어렵지 않습니다. 베 지어 경로를 사용하여 원하는 것을 얻을 수 있습니다. 코드는 다음과 같습니다

CGRect rect; 
CGFloat minX = CGRectGetMinX(rect), minY = CGFloatGetMinY(rect), maxX = CGFloatGetMaxX(rect), maxY = CGRectGetMaxY(rect); 

CGFloat radius = 3.0; // Adjust as you like 
CGContextBeginPath(context); 
CGContextMoveToPoint(context, (minX + maxX)/2.0, minY); 
CGContextAddArcToPoint(context, minX, minY, minX, maxY, radius); 
CGContextAddArcToPoint(context, minX, maxY, maxX, maxY, radius); 
CGContextAddArcToPoint(context, maxX, maxY, maxX, minY, radius); 
CGContextAddArcToPoint(context, maxX, minY, minX, minY, radius); 
CGContextClosePath(context); 

를 이제 그래픽 컨텍스트의 경로를 가지고, 당신은 그것을 그리거나 CGContextDrawPathCGContextFillPath 기능을 사용하여 간략하게 설명 할 수 있습니다.

+0

반경이 높이의 절반 인 Mail 's와 같은 약을 사용하면 4 개의 90 ° 호 대신 2 개의 180 ° 호를 그려 단순화 할 수 있습니다. –

+0

알렉스와 피터에게 감사합니다. 타원 위에 숫자 값을 계획하고 싶다면, 어떤 종류의 수학이 elipse의 중심으로 가서 그 위에 텍스트를 쓰는 것과 관련되어 있습니까? – Coocoo4Cocoa

+1

알약 모양인지 알지 못했습니다! 베드로가 한 말을해라. 코드 줄을 저장합니다. NSString에 추가 된 UIKit을 살펴보십시오. 그리는 문자열에 sizeWithFont :를 호출 한 다음 x = CGRectGetMinX (rect) + (CGRectGetWidth (rect) - textSize.width)/2.0으로 가운데에 맞 춥니 다. Y 좌표에 대해 반복합니다. – Alex

관련 문제