使用quartz2D繪製圖形的步驟 : app
1.獲取繪製的對象(上下文)(畫布、紙)字體
2.設置繪製的路徑spa
3.將路徑添加到繪製的對象(上下文)code
4.設置繪製的屬性:線條的顏色、線條的寬度、裁減區域 contextorm
5.繪製對象
(6.釋放路徑)若是路徑經過creat建立的就須要釋放圖片
繪製線條
ip
//1.獲取繪製的對象(上下文)(畫布、紙) CGContextRef context = UIGraphicsGetCurrentContext(); 第一種繪製方法 //2.設置繪製的路徑 CGMutablePathRef path = CGPathCreateMutable(); //設置路徑的起始點 CGPathMoveToPoint(path, NULL, 50, 50); //添加目標點 CGPathAddLineToPoint(path, NULL, 200, 200); //添加目標點 CGPathAddLineToPoint(path, NULL, 50, 200); //添加目標點 // CGPathAddLineToPoint(path, NULL, 50, 50); //關閉路徑 CGPathCloseSubpath(path); //3.將路徑添加到繪製的對象(上下文) CGContextAddPath(context, path); //4.設置繪製的屬性:線條的顏色、線條的寬度、裁減區域 //設置繪製的線條顏色 CGContextSetRGBStrokeColor(context, 5/255.0, 128/255.0, 0, 1); //設置填充色 CGContextSetRGBFillColor(context, 22/255.0, 142/255.0, 242/255.0, 1); //設置線條的寬度 CGContextSetLineWidth(context, 3); //5.繪製 /* kCGPathFill, 只繪製填充 kCGPathStroke, 繪製線條 kCGPathFillStroke, 填充和線條 */ CGContextDrawPath(context, kCGPathFillStroke); //6.釋放路徑 CGPathRelease(path); 第二種繪製方法 //2.設置繪製的路徑 CGPoint p1 = CGPointMake(50, 50); CGPoint p2 = CGPointMake(200, 50); CGPoint p3 = CGPointMake(200, 200); CGPoint p4 = CGPointMake(50, 200); CGPoint p5 = p1; CGPoint pointArray[] = {p1,p2,p3,p4,p5}; //將點放到路徑中 CGContextAddLines(context, pointArray, 5); //四、設置繪製的屬性 // //設置線條的顏色 // CGContextSetRGBStrokeColor(context, 1, 1, 1, 1); // //設置填充色 // CGContextSetRGBFillColor(context, 43/255.0, 131/255.0, 160/255.0, 1); //使用UIKit中設置顏色的方法 // [[UIColor redColor] setStroke]; // [[UIColor blueColor] setFill]; //設置線條和填充色都是這個顏色 // [[UIColor redColor] set]; //五、繪製 CGContextDrawPath(context, kCGPathEOFillStroke);
繪製矩形it
//1.獲取繪製的對象(上下文)(畫布、紙) CGContextRef context = UIGraphicsGetCurrentContext(); CGRect rect = CGRectMake(40, 40, 100, 100); //在上下文上添加矩形 CGContextAddRect(context, rect); //設置線條的顏色 [[UIColor greenColor] setStroke]; //設置填充色 [[UIColor redColor] setFill]; //設置線條的寬度 CGContextSetLineWidth(context, 10); //設置鏈接點得樣式 CGContextSetLineJoin(context, kCGLineJoinRound); //繪製 CGContextDrawPath(context, kCGPathFillStroke); //使用UI繪製矩形 CGRect rect1 = CGRectMake(90, 50, 200, 200); [[UIColor redColor] setStroke]; [[UIColor greenColor] setFill]; //若是設置,則UIRectFrame繪製線條和填充 UIRectFillUsingBlendMode(rect1, kCGBlendModeCopy); //繪製矩形框(線條) UIRectFrame(rect1); //繪製填充圖形 // UIRectFill(rect);
繪製圓形io
//1.獲取繪製的對象(上下文)(畫布、紙) CGContextRef context = UIGraphicsGetCurrentContext(); //在上下文中添加圓 /* x,y表示圓心 radius:半徑 startAngle:起始角度 endAngle:結束角度 注角度的正負 clockwise:繪製的方向 1:逆時針 0:順時針 */ CGContextAddArc(context, 150, 150, 100, 0, 2*M_PI, 1); //設置線條的顏色 [[UIColor orangeColor] setStroke]; [[UIColor greenColor] setFill]; CGContextDrawPath(context, kCGPathFillStroke); */ //繪製橢圓 CGRect rect = CGRectMake(30, 30, 200, 100); //繪製矩形 // UIRectFrame(rect); CGContextAddEllipseInRect(context, rect); CGContextSetRGBStrokeColor(context,43/255.0, 131/255.0, 160/255.0, 1); //繪製 CGContextDrawPath(context, kCGPathStroke);
繪製貝塞爾曲線
//1.獲取繪製的對象(上下文)(畫布、紙) CGContextRef context = UIGraphicsGetCurrentContext(); //設置起始點 CGContextMoveToPoint(context, 20, 200); //添加曲線 // CGContextAddCurveToPoint(context, 100, 20, 120, 300, 300, 50); CGContextAddQuadCurveToPoint(context, 150, 20, 300, 200); //繪製 CGContextDrawPath(context, kCGPathStroke);
繪製圖片
//1.獲取繪製的對象(上下文)(畫布、紙) CGContextRef context = UIGraphicsGetCurrentContext(); //UIKit提供的多種方式 //方式一:指定繪製的初始點,繪製的大小有圖片決定(圖片的原尺寸) [img drawAtPoint:CGPointMake(30, 30)]; //方式二:指定繪製的位置和大小,圖片會在矩形區域中填充 [img drawInRect:CGRectMake(30, 30, 100, 200)]; //方式三:保證圖片的原尺寸的前提下,平鋪視圖 [img drawAsPatternInRect:CGRectMake(30, 30, 100, 200)]; //保存之前的狀態 CGContextSaveGState(cotext); //縮放y軸 CGContextScaleCTM(cotext, 1, -1); //平移 CGContextTranslateCTM(cotext, 0, -200); //使用Core Graphic方法繪製圖片 CGContextDrawImage(cotext, CGRectMake(0, 0, 200, 200), img.CGImage); //恢復 CGContextRestoreGState(cotext);
繪製文字
圖片 //1.獲取繪製的對象(上下文)(畫布、紙) CGContextRef context = UIGraphicsGetCurrentContext(); //繪製的內容 NSString *text = @"我就是我,是顏色不同的煙火"; //設置繪製的區域 CGRect rect = CGRectMake(30, 90, 20, 500); UIRectFrame(rect); NSDictionary *dic = @{ NSFontAttributeName:[UIFont systemFontOfSize:18], NSForegroundColorAttributeName:[UIColor orangeColor] }; //注意:使用此方法繪製文字的時候,字體的顏色使用字典設置 [text drawInRect:rect withAttributes:dic]; //設置線條 // [[UIColor redColor] set]; // [text drawInRect:rect withFont:[UIFont systemFontOfSize:18] lineBreakMode:NSLineBreakByWordWrapping];