UIGraphicsGetCurrentContext()方法理解

一般若是想要畫圖,咱們須要獲取CGContextRef,而後才能夠開始畫。固然相似UIBezierPath看似沒有使用context,但其實內部仍是使用了,只不過咱們看不到而已。 函數

但這個函數不是任何地方都是調用的,若是你在非drawRect方法中獨自調用,編譯器會提示這個context將會是invalid context,緣由按照文檔的介紹以下: spa

系統會維護一個CGContextRef的棧,而UIGraphicsGetCurrentContext()會取棧頂的CGContextRef,正確的作法是隻在drawRect裏調用UIGraphicsGetCurrentContext(),由於在drawRect以前,系統會往棧裏面壓入一個valid的CGContextRef,除非本身去維護一個CGContextRef,不然不該該在其餘地方取CGContextRef。 .net

Reference:http://blog.csdn.net/ch_soft/article/details/6928947 blog

相關文章
相關標籤/搜索