iOS Core Graphics介紹


Core Graphics是iOS中繪製圖形的核心框架.


Core Graphics屬於媒體層,它負責所有在iOS屏幕上進行的繪圖操作。
創建任何界面元素時,iOS都是用Core Graphics來將這些元素繪製到窗口中去的。
通過實現和重載Core Graphics的方法,可以創建自定義的界面元素.

最常見的用法是繼承一個UIView的子類,重載其drawRect。
視圖刷新或者重繪drawRect都會被調用。
調用頻率很高,所以應該極爲輕量級。

從不直接調用drawRect,需要重繪使用setNeedDisplay(作用是讓iOS根據它的安排調用drawRect)。
圖形上下文的屬性是狀態相關的,改變屬性會影響所有後續操作。


要用到的圖形上下文屬性:

路徑(path)
陰影(shadow)
筆畫(stroke)
剪裁路徑(clip path)
線條粗細(line width)
混合模式(blend mode)
填充色(fill color)
當前形變矩陣(current transform matrix)
線條圖案(line dash)


圖形上下文棧
一個圖形上下文好比是畫布上的一副扁平的圖畫 執行繪畫動作,這些動作是在同一個圖層上完成的。 圖形上下文不允許將內容分不到多個圖層中,如果有需求在不同圖層上畫,可以考慮使用視圖層次結構,創建多個UIView,並將他們作爲父視圖的子視圖
圖形上下文棧可以把圖形上下文的當前狀態保存下來,並在執行一些動作後再次恢復回來
CGContextSaveGState(); 
CGContextStoreGState(); 

Core Graphics中還提供了很多預先設置好的路徑(矩形、圓形等等)。
不妨在drawRect方法中輸入“CGContextAdd”試試看。
展現出來的這些方法由Core Graphics提供,
可以用來繪製圓形、橢圓、矩形、二次曲線等路徑。

創建完路徑後還要記得調用CGContextAddPath方法將路徑添加到上下文中。
路徑只是我們畫的一條線而已,不把他畫到上,他就沒有什麼卵用。


添加好路徑後,就要開始畫圖了。
畫圖的時候需要考慮畫不畫邊框、畫不畫邊框內部的區域,
邊框的粗細、顏色、內部區域顏色等問題。
Core Graphics提供了另一個方法集合”CGContextSet”來進行這些設置。

發佈了68 篇原創文章 · 獲贊 0 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章