2011-07-01 4 views
1

긴 사각형 (크기는 200x20 일 수도 있음)을 상상해보십시오. 모든면이 직선형입니다. 내 iOS 앱에서는이 날 그릴을 위해 쉽게 :iOS 곡선 끝이있는 직사각형을 그립니다.

CGContextFillRect(context, CGRectMake(xLoc, yLoc, 200, 20)); 

차라리 직선 가장자리보다 약간 곡선으로 (사각형의 왼쪽과 오른쪽에) 짧은 끝을 원한다면 이제 어떻게. 이렇게하려면 코드가 어떻게 보이게됩니까?

이 같은

답변

2

뭔가 (내가 CGContext 그리기 상대적으로 경험이 오전 주) (검증되지 않은, 그래서 버그 조심!) :

- (void)drawRect:(CGRect)rect { 
CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextSetStrokeColorWithColor(context, [[UIColor blackColor] CGColor]); 
CGContextSetRGBFillColor(context, 0.0, 0.0, 1.0, 1.0); 

CGRect rrect = CGRectMake(CGRectGetMinX(rect), CGRectGetMinY(rect), CGRectGetWidth(rect)-30, CGRectGetHeight(rect)-30); 
CGFloat radius = 0.5f; 

CGFloat minx = CGRectGetMinX(rrect), midx = CGRectGetMidX(rrect), maxx = CGRectGetMaxX(rrect); 
CGFloat miny = CGRectGetMinY(rrect), midy = CGRectGetMidY(rrect), maxy = CGRectGetMaxY(rrect); 

CGContextMoveToPoint(context, minx, midy); 
CGContextAddArcToPoint(context, minx, miny, midx, miny, radius); 
CGContextAddArcToPoint(context, maxx, miny, maxx, midy, radius); 
CGContextAddArcToPoint(context, maxx, maxy, midx, maxy, radius); 
CGContextAddArcToPoint(context, minx, maxy, minx, midy, radius); 
CGContextClosePath(context); 
CGContextDrawPath(context, kCGPathFillStroke); 
} 
+0

당신은 그것을 수정할 수 있습니다 ctanlge : (CGRect) rect? 보통 크기의 직사각형 사각형 대신 곡선 사각형을 그립니다. – CodeGuy

+0

예, 수행 할 수 있습니다. 점에 줄을 추가하는 것 등등. 나는 당신에게 그 운동을 떠날거야 :-) – PengOne

+0

나는 그것을 알아낼 수 없다 :(그것은 재미있어 보인다 lol – CodeGuy

관련 문제