Quart2D 知識(shí)點(diǎn)

Quart2D 知識(shí)點(diǎn)

1> Quartz2D簡(jiǎn)介
*  PPT簡(jiǎn)介
    什么是Quartz2D?二維的繪圖引擎
    什么是二維?平面
    什么是引擎?經(jīng)包裝的函數(shù)庫(kù)蔫缸,方便開發(fā)者使用惫皱。也就是說蘋果幫我們封裝了一套繪圖的函數(shù)庫(kù)
    同時(shí)支持iOS和Mac系統(tǒng)什么意思?用Quartz2D寫的同一份代碼,既可以運(yùn)行在iphone上又可以運(yùn)行在mac上晃痴,可以跨平臺(tái)開發(fā)曹铃。
    開發(fā)中比較常用的是截屏/裁剪/自定義UI控件缰趋。
    Quartz2D在iOS開發(fā)中的價(jià)值就是自定義UI控件。
    圖形上下文的數(shù)據(jù)類型和作用。
    有多少種上下文秘血。
    自定義控件的步驟味抖。
    為什么要實(shí)現(xiàn)drawRect:方法,因?yàn)橹挥性赿rawRect:方法中才能獲取到上下文

2>  Quartz2D繪圖演練
    在哪畫? storyboard拖一個(gè)view灰粮,在這個(gè)view里面畫一些東西仔涩。
    自定義view:需要繪圖,就必須重寫drawRect:方法
*   HMLineView:繪制線段 必須畫圖分析
    drawRect:方法自動(dòng)生成粘舟,意味著什么?這個(gè)方法很重要熔脂。
        1> 什么時(shí)候調(diào)用:視圖要顯示的時(shí)候,才會(huì)調(diào)用,viewDidLoad后才會(huì)調(diào)用蓖乘,因?yàn)槟菚r(shí)候還沒顯示視圖锤悄。
        2> 作用:用來繪圖
    * 畫一條線
    1> 獲取圖形上下文
    CG:表示這個(gè)類在CoreGraphics框架里  Ref:引用
    目前學(xué)的上下文都跟UIGraphics有關(guān),想獲取圖形上下文嘉抒,首先敲UIGraphics零聚。
    2> 拼接路徑:一般開發(fā)中用貝塞爾路徑,里面封裝了很多東西些侍,可以幫我畫一些基本的線段隶症,矩形,圓等等岗宣。
        創(chuàng)建貝塞爾路徑
        起點(diǎn):moveToPoint
        終點(diǎn):addLineToPoint
    3> 把路徑添加到上下文
        CGPath轉(zhuǎn)換:UIKit框架轉(zhuǎn)CoreGraphics直接CGPath就能轉(zhuǎn)
    4> 把上下文渲染到視圖蚂会,圖形上下文本身不具備顯示功能。
        PPT畫圖分析為什么要這樣做?首先獲取圖形上下文耗式,然后描述路徑胁住,把路徑添加到上下文,渲染到視圖刊咳,圖形上下文相當(dāng)于一個(gè)內(nèi)存緩存區(qū)彪见,在內(nèi)存里面操作是最快的,比直接在界面操作快多了娱挨。

    * 在添加一根線
        直接addLineToPoint余指,因?yàn)槁窂绞瞧唇拥模J(rèn)下一條線的起點(diǎn)是上一條線的終點(diǎn)跷坝。

    * 畫兩跟不連接的線
        1> 第二次畫的時(shí)候酵镜,重新設(shè)置起點(diǎn),然后畫線柴钻。一個(gè)路徑可以包含多條線段淮韭。
        2> 新創(chuàng)建一個(gè)路徑,添加到上下文贴届。開發(fā)中建議使用這種靠粪,比較容易控制每根線足丢。

    * 設(shè)置繪圖狀態(tài)
        線段怎么加粗。
        繪圖狀態(tài)調(diào)用順序:只要在渲染之前就好了庇配,在渲染的時(shí)候才會(huì)去看繪圖的最終狀態(tài)。

    * 畫曲線
    PPT分析:3個(gè)點(diǎn)绍些,起點(diǎn)捞慌,終點(diǎn),控制點(diǎn)柬批。

*   HMShapeView:繪制圖形
    * triangle三角形(畫圖分析)
    * 關(guān)閉路徑closePath:從路徑的終點(diǎn)連接到起點(diǎn)
    * 填充路徑CGContextFillPath:有了封閉的路徑就能填充啸澡。
    * 設(shè)置填充顏色 [[UIColor blueColor] setFill];
    * 設(shè)置描邊顏色 [[UIColor redColor] setStroke];
    * 不顯示描邊顏色,為什么?沒有設(shè)置線寬
    * 設(shè)置線寬氮帐,還是不顯示嗅虏,為什么?因?yàn)槔L制路徑不對(duì)。
    * 即填充又描邊CGContextDrawPath:kCGPathFillStroke上沐。

    * rectangle矩形

    * circle圓:為什么傳入矩形皮服,因?yàn)閳A內(nèi)切與矩形

    * arc圓弧
    PPT分析:
        1> 圓弧屬于圓的一部分,因此先要有圓参咙,才有弧龄广。
        2> 圓需要起點(diǎn)嗎?畫線需要蕴侧,圓也不另外择同。
        3> 起點(diǎn)在哪? 圓心右邊
        4> 畫圓弧還需要起始角度,結(jié)束角度净宵,方向敲才,角度必須是弧度


    * Quarter 1/4圓
      * 畫個(gè)1/4圓弧,Stroke
      * 填充路徑择葡,F(xiàn)ill
      * 必須有封閉路徑才能填充紧武,沒有封閉路徑,系統(tǒng)會(huì)自動(dòng)關(guān)閉路徑刁岸,再去填充
      * 畫線連接圓心脏里,自動(dòng)關(guān)閉路徑。



2.1 基本圖形繪制:
    先畫PPT在寫代碼
    講解順序: 繪制線段(Line):繪制直線->在添加一條直線->繪制兩條直線(路徑填充虹曙、設(shè)置路徑屬性迫横,顏色,線寬等)->曲線->分析
    講解順序: 繪制圖形(Shape):繪制三角形(超人內(nèi)褲)->矩形->圓->圓弧->1/4圓

3>  重繪-下載進(jìn)度條(setNeedsDisplay) 必須畫圖分析
    * 分析有幾個(gè)控件:UISliderView,自定義view用來畫圖,UILabel
    * 分析思路:滑動(dòng)UISliderView的時(shí)候酝碳,把UISliderView的值傳給自定義view,改變的顯示矾踱。
    * 怎么監(jiān)聽UISliderView,valueChange事件
    * 自定義view搞一個(gè)屬性接收滑動(dòng)的值
    * 接下來先搞label,因?yàn)樗容^簡(jiǎn)單疏哗,做東西呛讲,先從簡(jiǎn)單的著手。
    * 懶加載label,位置居中,文字居中
    * label怎么顯示?重寫progress的set方法,有數(shù)據(jù)就展示在label上贝搁。
    * 繪制圓弧吗氏,PPT分析,從哪開始畫圓弧雷逆。
    * 每次轉(zhuǎn)多少°弦讽? 角度 = 進(jìn)度 * M_PI * 2
    * startAngle = -M_PI_2
    * endAngle = -M_PI_2 + 進(jìn)度 * M_PI * 2
    * 不會(huì)及時(shí)更新視圖顯示?為什么,因?yàn)閐rawRect只會(huì)在視圖顯示的時(shí)候調(diào)用一次膀哲。
    * 怎么重繪往产?
    * 手動(dòng)調(diào)用drawRect方法,不行某宪,因?yàn)槟阕约翰荒軇?chuàng)建上下文仿村,必須系統(tǒng)調(diào)用來調(diào)用
    * setNeedsDisplay:在view上做一個(gè)重繪的標(biāo)記,在下一次繪圖的周期來臨兴喂,就會(huì)先創(chuàng)建好上下文蔼囊,然后自動(dòng)調(diào)用drawRect重繪。


4>  繪制餅圖
    * PPT分析 -> 找規(guī)律 -> 得出startA,endA,angle的結(jié)論
    * startA = endA angle = 比例 * 總度數(shù)360° endA = startA + angle
    * angle = 自己 / 100.0 * 360
    * 一個(gè)一個(gè)扇形畫
5>  繪制柱狀圖
    * PPT分析 -> 找規(guī)律 -> 得出w,h,y,x的結(jié)論
    * w = viewW / (2 * count - 1)
    * h = viewH * 比例

6>  UIKit封裝繪圖方法演練(不需要上下文)
6.0 繪制文本
6.1 繪制矩形
6.2 繪制圖像
6.4 圖像裁切 -> 指定裁切區(qū)域之后瞻想,所有繪圖信息都只顯示裁切區(qū)域內(nèi)

7>  模仿UIImageView/雪花(定時(shí)器)

8>  圖形上下文棧

9>  矩陣變換





最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末压真,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蘑险,更是在濱河造成了極大的恐慌滴肿,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件佃迄,死亡現(xiàn)場(chǎng)離奇詭異泼差,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)呵俏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門堆缘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人普碎,你說我怎么就攤上這事吼肥。” “怎么了麻车?”我有些...
    開封第一講書人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵缀皱,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我动猬,道長(zhǎng)啤斗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任赁咙,我火速辦了婚禮钮莲,結(jié)果婚禮上免钻,老公的妹妹穿的比我還像新娘。我一直安慰自己崔拥,他們只是感情好极舔,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著链瓦,像睡著了一般姆怪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上澡绩,一...
    開封第一講書人閱讀 49,816評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音俺附,去河邊找鬼肥卡。 笑死,一個(gè)胖子當(dāng)著我的面吹牛事镣,可吹牛的內(nèi)容都是我干的步鉴。 我是一名探鬼主播,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼璃哟,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼氛琢!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起随闪,我...
    開封第一講書人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤阳似,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后铐伴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體撮奏,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年当宴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了畜吊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡户矢,死狀恐怖玲献,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情梯浪,我是刑警寧澤捌年,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站驱证,受9級(jí)特大地震影響延窜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜抹锄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一逆瑞、第九天 我趴在偏房一處隱蔽的房頂上張望荠藤。 院中可真熱鬧,春花似錦获高、人聲如沸哈肖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽淤井。三九已至,卻和暖如春摊趾,著一層夾襖步出監(jiān)牢的瞬間币狠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工砾层, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留漩绵,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓肛炮,卻偏偏與公主長(zhǎng)得像止吐,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子侨糟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容