Quartz2D
- Quartz2D的API是純C語言的
- 數(shù)據(jù)類型和函數(shù)基本都以CG作為前綴
- CGContextRef
- CGPathRef
- CGContextStrokePath(ctx);
- 一般開發(fā)中不用Quartz2D去繪制圖形癌蓖,OC為我們提供了一個繪制圖形的對象
UIBezierPath
- UIBezierPath對象是OC為我們封裝好了一些常用的Quartz2DAPI枪孩,可以快速上手撒犀。
- 不管是Quartz2D 還是 UIBezierPath只要在蘋果的平臺下繪制圖形的過程都是一樣的跨跨,只不過內(nèi)部的方法可能幫我們封裝好了一下,但是繪制圖形的過程我們必須了解
- 繪制圖形的過程:
獲取圖形上下文 (所謂的上下文個人理解:就是畫板疯特,有了畫板才能畫圖形)
創(chuàng)建路徑
把路徑添加到上下文
渲染上下文
繪制圖形的方法
- 繪制圖形的時候我們需要在 - (void)drawRect:(CGRect)rect方法中執(zhí)行哗魂,該方法會在view 將要顯示的時候調(diào)用也就是說先調(diào)用 -(void)ViewDidload方法在調(diào)用該方法
- 需要注意的是,只有在- (void)drawRect:(CGRect)rect方法中才能獲取到和view的layer相關(guān)聯(lián)的圖形上下文
- -(void)drawRect:(CGRect)rect方法中 傳遞的rect屬性是當前控件的bounds
- 注意:drawRect不可以手動調(diào)用辙芍,如果想重新繪制或者刷新繪制 需要調(diào)用 setNeedsDisplay方法
demo