2011-09-23 21 views
5

我想了解Quartz並獲取您必須繪製的上下文。如果我有創建上下文的函數,但是隨後我將其他函數的另一個函數調用到同一個上下文中,是否需要將上下文從第一個方法傳遞到下一個?或者我可以使用UIGraphicsGetCurrentContext()來處理任何需要上下文的CG方法,因爲我仍然在繪製相同的上下文?瞭解UIGraphicsGetCurrentContext()

回答

13

docs for UIGraphicsGetCurrentContext()說:

當前的圖形上下文是默認爲零。在調用其 drawRect:方法之前,視圖對象會將有效上下文推送到堆棧上,使其變爲最新。但是,如果您未使用UIView對象執行繪圖,則必須使用UIGraphicsPushContext函數手動將有效上下文手動推入堆棧 。

因此,在您創建的上下文調用UIGraphicsPushContext()之後,其他方法可以使用UIGraphicsGetCurrentContext()訪問該上下文。如果您在drawRect之外調用UIGraphicsGetCurrentContext():並且沒有使用UIGraphicsPushContext()顯式設置上下文,則當前的圖形上下文是未定義的 - 並且當然不安全。

+0

這是一個工作鏈接:https://developer.apple.com/documentation/uikit/1623918-uigraphicsgetcurrentcontext – DeveloperACE