關情紙尾-----Quartz2D基本線條繪製,關情-----quartz2d
1.DrawRect方法作用?什麼時候調用?
DrawRect作用:專用在這個方法當中繪圖的.只有在這個方法當中才能取得跟View相關聯的上下文.
DrawRect是系統自己調用的, 它是當View顯示的時候自動調用.
2.畫線(基本步驟描述)
2.1擷取跟View相關聯的上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
2.2繪製路徑
UIBezierPath *path = [UIBezierPath bezierPath];
2.2.1設定起點
[path moveToPoint:CGPointMake(10, 125)];
2.2.2添加一根線到某個點
[path addLineToPoint:CGPointMake(200, 125)];
2.3把路徑添加到上下文
CGContextAddPath(ctx,path.CGPath);
2.4把內容相關的內容渲染到View上面.
CGContextStrokePath(ctx);
3. 想要再添加一根線怎麼辦?
第一種方法:重新設定起點,添加一根線到某個點,一個UIBezierPath路徑上面可以有多條線.
第二種方法:直接在原來的基礎上添加線.把上一條的終點當做下一條線的起點.添加一根線到某個點
直接在下面addLineToPoint:
4.怎麼樣設定線的寬度,顏色,樣式?
設定這些樣式,我們稱為是修改圖形內容相關的狀態.
設定線寬:CGContextSetLineWidth(ctx, 20);
設定線段的串連樣式: CGContextSetLineJoin(ctx, kCGLineJoinRound);
添加頂角樣式:CGContextSetLineCap(ctx, kCGLineCapRound);
設定線的顏色: [[UIColor redColor] setStroke];
5.如何畫曲線?
畫曲線方法比較特殊需要一個控制點來決定曲線的彎曲程度.畫曲線方法為:
先設定一個曲線的起點
[path moveToPoint:CGPointMake(10, 125)];
再添加到個點到曲線的終點.同時還須要一個controlPoint(控制項點決定曲線彎曲的方法程式)
[path addQuadCurveToPoint:CGPointMake(240, 125) controlPoint:CGPointMake(125, 10)];
6.如何畫矩形,圓角矩形?
畫矩形直接利用UIBezierPath給我們封裝好的路徑方法
(x,y)點決定了矩形左上方的點在哪個位置
(width,height)是矩形的寬度高度
bezierPathWithOvalInRect:CGRectMake(x, y, width, height)
圓角矩形的畫法多了一個參數,cornerRadius
cornerRadius它是矩形的圓角半徑.
通過圓角矩形可以畫一個圓.當矩形是正方形的時候,把圓角半徑設為寬度的一半,就是一個圓.
bezierPathWithRoundedRect:CGRectMake(10, 100, 50, 50) cornerRadius:10
7.如果畫橢圓,圓?
畫橢圓的方法為:
前兩個參數分別代碼圓的圓心,後面兩個參數分別代表圓的寬度,與高度.
寬高都相等時,畫的是一個正圓, 不相等時畫的是一個橢圓
bezierPathWithOvalInRect:CGRectMake(10, 100, 50, 50)
8.如何利用UIKit封裝的上下文進行畫圖?
直接來個:[path stroke]就可以了.
它底層的實現,就是擷取上下文,拼接路徑,把路徑添加到上下文,渲染到View
9.如何畫圓弧?
首先要確定圓才能確定圓弧,圓孤它就圓上的一個角度嘛
Center:圓心
radius:圓的半徑
startAngle:起始角度
endAngle:終點角度
clockwise:Yes順時針,No逆時針
注意:startAngle角度的位置是從圓的最右側為0度.
UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(125, 125)
radius:100
startAngle:0
endAngle:M_PI * 2
clockwise:YES];
10.如果畫扇形.
畫扇形的方法為:先畫一個圓孤再添加一個一根線到圓心,然後關閉路徑.
關閉路徑就會自動從路徑的終點到路徑的起點封閉起下
用填充的話,它會預設做一個封閉路徑,從路徑的終點到起點.
關閉路徑,
[path closePath];
[path fill];