UIGraphicsGetCurrentContext()的使用

UIGraphicsGetCurrentContext一般是使用在drawrect,系統(tǒng)會維護(hù)一個CGContextRef的棧,UIGraphicsGetCurrentContext()會取出棧頂?shù)腸ontext,所以在其他地方調(diào)用該函數(shù),獲取到的上下文都是nil

// UIImage context

// The following methods will only return a 8-bit per channel context in the DeviceRGB color space.
// Any new bitmap drawing code is encouraged to use UIGraphicsImageRenderer in leiu of this API.
UIKIT_EXTERN void     UIGraphicsBeginImageContext(CGSize size);
UIKIT_EXTERN void     UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale) NS_AVAILABLE_IOS(4_0);
UIKIT_EXTERN UIImage* __nullable UIGraphicsGetImageFromCurrentImageContext(void);
UIKIT_EXTERN void     UIGraphicsEndImageContext(void); 

如果想在drawRect外獲取context,可以自己在創(chuàng)建位圖上下文
這是系統(tǒng)自帶的開始和結(jié)束方法,在繪制之前調(diào)用

// 給出一個繪制控件的大小
UIGraphicsBeginImageContext(CGSize size);
或者
// 給出一個繪制控件的大小,以及透明度
UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale);

// 之后就可以在contextRef進(jìn)行繪畫
CGContextRef contextRef =UIGraphicsGetCurrentContext();
// UIGraphicsGetImageFromCurrentImageContext();

// 結(jié)束之后記得加上
UIGraphicsEndImageContext();
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、簡介 對于 Core Graphics Framework,可以從兩個方面初步感知,一是它在繪圖系統(tǒng)中的...
    kReader閱讀 1,915評論 0 1
  • --繪圖與濾鏡全面解析 概述 在iOS中可以很容易的開發(fā)出絢麗的界面效果,一方面得益于成功系統(tǒng)的設(shè)計,另一方面得益...
    韓七夏閱讀 2,981評論 2 10
  • 上一章 四個人剛推門進(jìn)入,林南勝和梁麗華便起身迎接。林南勝開口道:“二位來也不提前說一聲,我們好前去迎接。” “親...
    狐貍九閱讀 892評論 0 3
  • VLC網(wǎng)速估計算法 ExoPlayer是根據(jù)以往的下載速度來估計當(dāng)前的網(wǎng)速 現(xiàn)介紹一下幾個符號: 采樣數(shù)組定義如下...
    ce0b74704937閱讀 1,978評論 0 2
  • 二十多年前,我父親病了,一病不起。他是組織的人,組織把他送到享譽(yù)三湘的湖南醫(yī)科大學(xué)附屬二醫(yī)院,希望能拯救他的生命。...
    甘草子的簡書閱讀 259評論 0 0

友情鏈接更多精彩內(nèi)容