Quartz 2D簡介
Quartz 2D是一個(gè)二維繪圖引擎宁否,同時(shí)支持iOS和Mac系統(tǒng)
-
Quartz 2D能完成的工作
- 繪制圖形 : 線條\三角形\矩形\圓\弧等
- 繪制文字
- 繪制\生成圖片(圖像)
- 讀取\生成PDF
- 截圖\裁剪圖片
- 自定義UI控件
二、自定義view
為了便于搭建美觀的UI界面,iOS提供了UIKit框架,里面有各種各樣的UI控件
UILabel:顯示文字
UIImageView:顯示圖片
UIButton:同時(shí)顯示圖片和文字(能點(diǎn)擊)
… …利用UIKit框架提供的控件逮光,拼拼湊湊引有,能搭建和現(xiàn)實(shí)一些簡單、常見的UI界面
但是弧岳,有些UI界面極其復(fù)雜凳忙、而且比較個(gè)性化,用普通的UI控件無法實(shí)現(xiàn)禽炬,這時(shí)可以利用Quartz2D技術(shù)將控件內(nèi)部的結(jié)構(gòu)畫出來涧卵,自定義控件的樣子
其實(shí),iOS中大部分控件的內(nèi)容都是通過Quartz2D畫出來的
因此腹尖,Quartz2D在iOS開發(fā)中很重要的一個(gè)價(jià)值是:
自定義view
(自定義UI控件)-
自定義view的步驟
- 新建一個(gè)類柳恐,繼承自UIView
- 實(shí)現(xiàn)- (void)drawRect:(CGRect)rect方法,然后在這個(gè)方法中
- 取得跟當(dāng)前view相關(guān)聯(lián)的
圖形上下文
- 繪制相應(yīng)的圖形內(nèi)容
- 利用
圖形上下文
將繪制的所有內(nèi)容渲染顯示到view上面
-
為什么要實(shí)現(xiàn)drawRect:方法才能繪圖到view上热幔?
- 因?yàn)樵赿rawRect:方法中才能取得跟view相關(guān)聯(lián)的圖形上下文
-
drawRect:方法在什么時(shí)候被調(diào)用乐设?
- 當(dāng)view第一次顯示到屏幕上時(shí)(被加到UIWindow上顯示出來)
調(diào)用view的setNeedsDisplay
或者setNeedsDisplayInRect:時(shí)
- 當(dāng)view第一次顯示到屏幕上時(shí)(被加到UIWindow上顯示出來)