2011-07-01 8 views
1

長い矩形(おそらくサイズ200x20)を想像してみてください。すべての辺に直線のエッジがあります。iOS描画曲がった端のあるレクタングル

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

を今私が(長方形の左側と右側)短い端はむしろ直線エッジよりも、わずかに湾曲になりたい場合:私は描画するための私のiOSアプリでは、これは簡単です。これを行うためにコードはどのように見えるでしょうか?

(私はCGContext描画で、比較的経験の浅いだということに注意してください)このような

答えて

2

何か(テストされていないので、バグに注意!):

- (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

私はそれを理解することができません:(それはおかしく見える笑 – CodeGuy

関連する問題