天天看點

02-Quartz2D基本線條繪制

02-基本線條繪制

1.DrawRect⽅方法作⽤用?什麼時候調⽤用. DrawRect作⽤用:專⽤用在這個⽅方法當中繪圖的.隻有在這個⽅方法當中才能取得跟View相關聯的上 下⽂文.

DrawRect是系統⾃自⼰己調⽤用的, 它是當View顯⽰示的時候⾃自動調⽤用.

2.畫線(基本步驟描述) 1.擷取跟View相關聯的上下⽂文.(UIGraphics都是以它開頭) CGContextRef ctx = UIGraphicsGetCurrentContext(); 2.描述路徑.

UIBezierPath *path = [UIBezierPath bezierPath]; 2.1設定起點.

[path moveToPoint:CGPointMake(10, 150)]; 2.2添加⼀一根到某個點.

[path addLineToPoint:CGPointMake(200, 50)]; 修改上下⽂文的狀态.

設定線的寬度

CGContextSetLineWidth(ctx, 10);

設定線的連接配接樣式.

CGContextSetLineJoin(ctx, kCGLineJoinBevel); 設定線的頂⾓角樣式

CGContextSetLineCap(ctx, kCGLineCapRound); 設定線的顔⾊色.還可以直接⽤用set這種⽅方法

[[UIColor greenColor] set]; 3.要把路徑添加到上下⽂文當中.

UIKit path -> CoreGraphics Path
      

CGContextAddPath(ctx, path.CGPath); 4.把上下⽂文的内容渲染到View上. stroke(描邊) fill(填充) CGContextStrokePath(ctx);

3. 想要再添加⼀一根線怎麼辦? 第⼀一種⽅方法:重新設定起點,添加⼀一根線到某個點,⼀一個UIBezierPath路徑上⾯面可以有多條線. 第⼆二種⽅方法:直接在原來的基礎上添加線.把上⼀一條的終點當做下⼀一條線的起點.添加⼀一根線到 某個點

直接在下⾯面addLineToPoint:CGPointMake(200, 50)

4.怎麼樣設定線的寬度,顔⾊色,樣式? 設定這些樣式,我們稱為是修改圖形上下⽂文的狀态. 設定線寬:CGContextSetLineWidth(ctx, 10);

設定線段的連接配接樣式: CGContextSetLineJoin(ctx, kCGLineJoinBevel); 添加頂⾓角樣式:CGContextSetLineCap(ctx, kCGLineCapRound); 設定線的顔⾊色: [[UIColor greenColor] set];

5.如何畫曲線?

畫曲線⽅方法⽐比較特殊需要⼀一個控制點來決定曲線的彎曲程度.畫曲線⽅方法為: 先設定⼀一個曲線的起點

[path moveToPoint:CGPointMake(10, 150)];

再添加到個點到曲線的終點.同時還須要⼀一個controlPoint(控件點決定曲線彎曲的⽅方法程式) [path addQuadCurveToPoint:CGPointMake(200, 150) controlPoint:CGPointMake(150, 10)];

6.如何畫矩形,圓⾓角矩形?

畫矩形直接利⽤用UIBezierPath給我們封裝好的路徑⽅方法 (x,y)點決定了矩形左上⾓角的點在哪個位置

(width,height)是矩形的寬度⾼高度

bezierPathWithOvalInRect:CGRectMake(x, y, width, height)

[UIBezierPath bezierPathWithOvalInRect:CGRectMake(50, 50, 100, 100)];

圓⾓角矩形的畫法多了⼀一個參數,cornerRadius

cornerRadius它是矩形的圓⾓角半徑. 通過圓⾓角矩形可以畫⼀一個圓.當矩形是正⽅方形的時候,把圓⾓角半徑設為寬度的⼀一半,就是⼀一個圓. UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(50, 50, 100, 100) cornerRadius:50];

7.如果畫橢圓,圓

畫橢圓的⽅方法為: 前兩個參數分别代碼圓的圓⼼心,後⾯面兩個參數分别代表圓的寬度,與⾼高度. 寬⾼高都相等時,畫的是⼀一個正圓, 不相等時畫的是⼀一個橢圓

[UIBezierPath bezierPathWithOvalInRect:CGRectMake(50, 50, 100, 100)];

8.如何利⽤用UIKit封裝的上下⽂文進⾏行畫圖?

直接來個: [path stroke];就可以了. 它底層的實作,就是擷取上下⽂文,拼接路徑,把路徑添加到上下⽂文,渲染到View

9.如何畫圓弧? ⾸首先要确定圓才能确定圓弧,圓孤它就圓上的⼀一個⾓角度嘛

Center:圓⼼心

radius:圓的半徑 startAngle:起始⾓角度 endAngle:終點⾓角度 clockwise:Yes順時針,No逆時針

注意:startAngle⾓角度的位置是從圓的最右側為0度. CGPoint center = CGPointMake(150, 150); CGFloat radius = 100;

CGFloat startA = 0;//圓的0度⾓角在圓的最右側, CGFloat endA = -M_PI_2;

UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:center
radius:radius startAngle:startA endAngle:endA clockwise:NO];       

10.如果畫扇形. 畫扇形的⽅方法為:先畫⼀一個圓孤再添加⼀一個⼀一根線到圓⼼心,然後關閉路徑. 關閉路徑就會⾃自動從路徑的終點到路徑的起點封閉起下 ⽤用填充的話,它會預設做⼀一個封閉路徑,從路徑的終點到起點.

[path fill];

轉載于:https://www.cnblogs.com/llinsline/p/5392261.html