您好,登錄后才能下訂單哦!
這篇“iOS開發CGContextRef畫圖怎么使用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“iOS開發CGContextRef畫圖怎么使用”文章吧。
1.創建畫布
CGContextRef ctx = UIGraphicsGetCurrentContext();
2.設置屬性
//旋轉,注意:設置操作必須要在添加圖形之前,如果設置在添加圖形之后的話,此時它已經畫完了,無效 //旋轉的時候,是整個layer都旋轉了 //旋轉45度 CGContextRotateCTM(ctx, M_PI_4); //縮放:x方向縮放0.5倍,y方向縮放1.5倍 CGContextScaleCTM(ctx, 0.5, 1.5); //平移:x方向移動50,y方向移動100 CGContextTranslateCTM(ctx, 50, 100); CGContextSetLineJoin(ctx, kCGLineJoinRound); //線條寬度 CGContextSetLineWidth(ctx, 1.0); //起點和終點圓角 CGContextSetLineCap(ctx, kCGLineCapRound); //轉角圓角 CGContextSetLineJoin(ctx, kCGLineJoinRound); //透明度 CGContextSetAlpha(ctx, 0.5)
3.畫直線
//起點 CGContextMoveToPoint(ctx, 10.0, 100.0); //終點 CGContextAddLineToPoint(ctx, self.frame.size.width-20.0, 100.0); //顏色 兩種設置顏色的方式都可以 //CGContextSetRGBStrokeColor(ctx, 0, 1.0, 0, 1.0); [[UIColor redColor] set]; //渲染,直線只能繪制空心的,不能調用CGContextFillPath(ctx) // 或者使用這個方法:CGContextDrawPath(ctx, kCGPathStroke); CGContextStrokePath(ctx);
或者使用下面方法畫直線
CGPoint point[2];//坐標點 point[0] = CGPointMake(10.0, 100.0);//起點 point[1] = CGPointMake(self.frame.size.width-20.0, 100.0);//終點 //points[]坐標數組,和count大小 CGContextAddLines(context, aPoints, 2);//添加線 CGContextDrawPath(context, kCGPathStroke);
4.畫虛線
//設置虛線顏色 CGContextSetStrokeColorWithColor(ctx, [UIColor redColor].CGColor); //設置虛線繪制起點 CGContextMoveToPoint(ctx, 10.0, 50.0); //設置虛線繪制終點 CGContextAddLineToPoint(ctx, self.frame.size.width-20.0, 50.0); //設置虛線排列的寬度間隔:下面的arr中的數字表示先繪制3個點再繪制1個點 CGFloat arr[] = {3, 2}; //下面最后一個參數“2”代表排列的個數。 CGContextSetLineDash(ctx, 0, arr, 2); CGContextDrawPath(ctx, kCGPathStroke);
5.畫三角形
//起點 CGContextMoveToPoint(ctx, self.center.x, 200.0); //拐點1 CGContextAddLineToPoint(ctx, self.center.x-50.0, 250.0); //終點 CGContextAddLineToPoint(ctx, self.center.x+50.0, 250.0); //顏色 兩種設置顏色的方式都可以 //CGContextSetRGBStrokeColor(ctx, 0, 1.0, 0, 1.0); [[UIColor redColor] set]; //合并三角形 CGContextClosePath(ctx); CGContextFillPath(ctx);
6.畫矩形
CGRect rectangle = CGRectMake(10.0, 300.0, self.frame.size.width-20.0, 60.0); CGContextAddRect(ctx, rectangle); CGContextSetFillColorWithColor(ctx, [UIColor redColor].CGColor); CGContextFillPath(ctx);
7.畫圓
/** c 當前圖形 x 圓心坐標x y 圓心坐標y radius 半徑 startAngle 弧的起點與正X軸的夾角 endAngle 弧的終點與正X軸的夾角 clockwise 指定0創建一個順時針的圓弧,或是指定1創建一個逆時針圓弧 */ CGContextAddArc(ctx, self.center.x, 100.0, 75.0, 0.0, M_PI+0.5, 0); CGContextSetFillColorWithColor(ctx, [UIColor redColor].CGColor); CGContextFillPath(ctx);
8.畫橢圓
CGContextAddEllipseInRect(ctx, CGRectMake(x, y, 100.0, 60.0)); CGContextSetFillColorWithColor(ctx, [UIColor redColor].CGColor); CGContextFillPath(ctx);
9.畫扇形
CGContextMoveToPoint(ctx, x, y); CGContextAddArc(ctx, x, y, 75.0, 0.0, M_PI+0.5, 0); CGContextSetFillColorWithColor(ctx, [UIColor redColor].CGColor); CGContextSetStrokeColorWithColor(ctx, [UIColor blueColor].CGColor); CGContextDrawPath(ctx, kCGPathFillStroke);
10.畫二次貝塞爾曲線
CGContextMoveToPoint(context, 120, 300);//設置Path的起點 CGContextAddQuadCurveToPoint(context,190, 310, 120, 390);//設置貝塞爾曲線的控制點坐標和終點坐標 CGContextStrokePath(context);
11.畫三次貝塞爾曲線
CGContextMoveToPoint(context, 200, 300);//設置Path的起點 CGContextAddCurveToPoint(context,250, 280, 250, 400, 280, 300);//設置貝塞爾曲線的控制點坐標和控制點坐標終點坐標 CGContextStrokePath(context);
12.畫文字
// 設置文字的屬性 NSMutableDictionary *dict = [NSMutableDictionary dictionary]; dict[NSForegroundColorAttributeName] = [UIColor whiteColor]; dict[NSFontAttributeName] = [UIFont systemFontOfSize:14]; [@"I Love iOS" drawInRect:rect withAttributes:dict];
13.畫圖片
UIImage *image = [UIImage imageNamed:@"apple.jpg"]; [image drawInRect:CGRectMake(60, 340, 20, 20)];//在坐標中畫出圖片 //[image drawAtPoint:CGPointMake(100, 340)];//保持圖片大小在point點開始畫圖片,可以把注釋去掉看看 CGContextDrawImage(context, CGRectMake(100, 340, 20, 20), image.CGImage);//使用這個使圖片上下顛倒了 //CGContextDrawTiledImage(context, CGRectMake(0, 0, 20, 20), image.CGImage);//平鋪圖
以上就是關于“iOS開發CGContextRef畫圖怎么使用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。