2013-05-01 55 views
0

我有一个自定义UIView,我想在drawRect:方法中手动绘制。我希望视图只是一个黑色矩形,只有一个圆角和一个红色边框。我如何实现drawRect:绘制这个视图?iOS用底部边框绘制自定义视图

Sample UIView

+0

我试图创建一个CAShapeLayer并通过添加[self.layer addSublayer:shapeLayer]但我无法弄清楚如何创造更多不只是黑色的形状 – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 2013-05-01 05:31:40

回答

1

我会做类似

CGContextRef context = UIGraphicsGetCurrentContext(); 

CGContextClearRect(context, rect); 

CGContextSaveGState(context); 

CGFloat cornerRadius = 10.0f; 

CGFloat redBorderHeight = 4.0f; 

CGFloat minx = 0.0f; 
CGFloat miny = 0.0f; 
CGFloat midx = rect.size.width/2; 
CGFloat midy = rect.size.height/2; 
CGFloat maxx = rect.size.width; 
CGFloat maxy = rect.size.height; 

CGMutablePathRef path = CGPathCreateMutable(); 
CGPathMoveToPoint(path, nil, minx, midy); 
CGPathAddArcToPoint(path, nil, minx, miny, midx, miny, 0); 
CGPathAddArcToPoint(path, nil, maxx, miny, maxx, midy, 0); 
CGPathAddArcToPoint(path, nil, maxx, maxy, midx, maxy, 0); 
CGPathAddArcToPoint(path, nil, minx, maxy, minx, midy, cornerRadius); 
CGPathCloseSubpath(path); 

CGContextAddPath(context, path); 

CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor); 

CGContextDrawPath(context, kCGPathFill); 

CGContextRestoreGState(context); 

midy = (rect.size.height-redBorderHeight)/2; 
maxy = rect.size.height-redBorderHeight; 

CGMutablePathRef path2 = CGPathCreateMutable(); 
CGPathMoveToPoint(path2, nil, minx, midy); 
CGPathAddArcToPoint(path2, nil, minx, miny, midx, miny, 0); 
CGPathAddArcToPoint(path2, nil, maxx, miny, maxx, midy, 0); 
CGPathAddArcToPoint(path2, nil, maxx, maxy, midx, maxy, 0); 
CGPathAddArcToPoint(path2, nil, minx, maxy, minx, midy, cornerRadius); 
CGPathCloseSubpath(path2); 

CGContextAddPath(context, path2); 

CGContextSetFillColorWithColor(context, [UIColor blackColor].CGColor); 

CGContextDrawPath(context, kCGPathFill); 
+0

谢谢,我会试试这个。我在哪里可以了解更多关于这些绘图方法这是CoreGraphics?对不起,我是iOS开发新手。 – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 2013-05-01 05:32:56

+2

苹果文档其实很不错https://developer.apple.com/library/mac/#documentation/graphicsimaging/conceptual/drawingwithquartz2d/Introduction/Introduction.html#//apple_ref/doc/uid/TP40007533-SW1 – joao 2013-05-01 05:39:11