繪畫
一般創建UIView時都要一個drawRect在下面被註釋掉
現在把註釋去掉
//覆蓋drawRect方法,可以在此自定繪畫 和 動畫
- (void)drawRect:(CGRect)rect {
}
繪畫
//覆蓋drawRect方法,可以在此自定繪畫 和 動畫
- (void)drawRect:(CGRect)rect {
//一個不透明的Quartz 2D繪畫環境,相當於一個畫布,可以在上面任意繪畫
CGContextRef context = UIGraphicsGetCurrentContext();
//設置畫筆粗細
CGContextSetLineWidth(context, 1);
//設置畫筆的顏色
CGContextSetRGBStrokeColor(context, 1, 1, 1, 1);
//設置填充顏色
CGContextSetRGBFillColor(context, 1, 0, 0, 1);
//畫圓
CGContextAddArc(context, 100, 20, 15, 0, 2*M_PI, 0);
//繪製路徑
CGContextDrawPath(context, kCGPathStroke);
//填充圓,無邊框
CGContextAddArc(context, 150, 20, 15, 0, 2*M_PI, 1);
//繪製路徑
/*
<#CGPathDrawingMode mode#>
kCGPathFill, //填充非繞數規則
kCGPathEOFill, //表示用奇偶規則
kCGPathStroke, //路徑
kCGPathFillStroke, //路徑填充
kCGPathEOFillStroke //表示描線
*/
CGContextDrawPath(context, kCGPathFillStroke);
//畫線及弧線
CGContextMoveToPoint(context, 100, 80); //移到開始座標
CGContextAddLineToPoint(context, 130, 80);
CGContextDrawPath(context, kCGPathStroke);
//畫笑臉
//左邊
CGContextMoveToPoint(context, 140, 80); //開始座標p1
CGContextAddArcToPoint(context, 148, 68, 156, 80, 10);
CGContextStrokePath(context);
//右邊
CGContextMoveToPoint(context, 160, 80);
CGContextAddArcToPoint(context, 168, 68, 176, 80, 10);
CGContextStrokePath(context);
//畫矩形
CGContextStrokeRect(context, CGRectMake(100, 120, 10, 10));
CGContextFillRect(context, CGRectMake(120, 120, 10, 10));
//矩形並填充
CGContextSetLineWidth(context, 2);
CGContextSetFillColorWithColor(context, [UIColor greenColor].CGColor); //設置填充顏色
CGContextSetStrokeColorWithColor(context, [UIColor colorWithRed:34/255.0 green:199/255.0 blue:1 alpha:1].CGColor); //線框顏色
//畫方框
CGContextAddRect(context, CGRectMake(140, 120, 60, 30));
CGContextDrawPath(context, kCGPathFillStroke);
//畫扇形
//以10爲半徑圍繞圓心指定角度扇形
CGContextMoveToPoint(context, 160, 180);
CGContextAddArc(context, 160, 180, 10, 0, M_PI/2, 1);
CGContextClosePath(context);
CGContextDrawPath(context, kCGPathFillStroke);
//畫橢圓
CGContextAddEllipseInRect(context, CGRectMake(200, 180, 60, 15));
CGContextDrawPath(context, kCGPathFillStroke);
//畫貝塞爾曲線
//二次曲線
CGContextMoveToPoint(context, 120, 300);
CGContextAddQuadCurveToPoint(context, 190, 310, 120, 390); //設置貝塞爾曲線的控制點座標和終點座標
CGContextStrokePath(context);
//三次曲線
CGContextMoveToPoint(context, 200, 300);
CGContextAddCurveToPoint(context, 250, 280, 250, 400, 280, 300);
CGContextStrokePath(context);
//圖片
UIImage *image = [UIImage imageNamed:@"xx1.jpg"];
[image drawInRect:CGRectMake(60, 400, 200, 200)];
//iOS7.0新加的API
NSString *text = @"Rick";
[text drawAtPoint:CGPointMake(100, 100) withAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:18],NSForegroundColorAttributeName:[UIColor whiteColor]}];
}