2016-09-26 84 views
2

CGLayer,CALayer和CGContext有什麼不同?CGLayer,CALayer和CGContext的區別

+1

http://stackoverflow.com/questions/4458812/whats-the-difference-and-compatibility-of-cglayer-and-calayer –

+0

http://stackoverflow.com/questions/14658750/cgcontext-vs -calayer –

回答

2

所以,作爲一個文件說,

的CALayerQuartzCore framework

的CALayer的類管理基於圖像的內容,並允許您 對該內容執行動畫。通常使用圖層爲視圖提供後備存儲,但也可以在不顯示 顯示內容的情況下使用圖層。

欲瞭解更多信息,請看看https://developer.apple.com/reference/quartzcore/calayer

CGLayerCore Graphics framework

層對象是屏幕外繪製有用,可以在很大程度上 相同的方式使用一個位圖上下文可以使用。實際上,CGLayer對象比位圖上下文更好。使用 CGLayer對象可以提高性能,尤其是當你需要 拍攝一張圖紙的,可重複郵票(使用相同的 比例因子和方向)

欲瞭解更多信息,請看看https://developer.apple.com/reference/coregraphics/1666309-cglayer

注意CGLayer對象與Core Animation圖層無關(CALayer 對象)。

CGContext上Core Graphics framework

圖形上下文包含繪圖參數和需要以呈現頁面到目標上的油漆的所有設備特定的 信息, 是否目的地是一個窗口在應用程序中,位圖圖像,PDF文檔或打印機。

欲瞭解更多信息,請看看https://developer.apple.com/reference/coregraphics/1666363-cgcontext

0

CG在CGLayer代表核芯顯卡和CA在CALayer的核心動畫。 這些確實令人困惑。

CGLayer由CoreGraphics.framework提供,主要用於繪製圓形,矩形,直線等各種幾何形狀的矢量對象。這爲CPU渲染IIRC提供了高性能圖形支持。你可以在視圖中使用CALayer(由Quartz框架提供)。這是基於大多數使用GPU的OpenGL。

CGContext上(再次由Quartz框架提供) - 此內容從文檔直接複製

圖形上下文包含繪圖參數和需要以呈現頁面上的油漆到目的地的所有設備特定的 信息, 目標是應用程序中的窗口,位圖圖像,PDF文檔還是打印機。您可以使用Quartz圖形上下文創建功能或使用Carbon,Cocoa或Printing框架中提供的 高級功能獲得 的圖形上下文。 Quartz爲各種不同風格的石英圖形上下文(包括位圖圖像和PDF)提供創建功能。可可 框架提供了獲取窗口圖形上下文的功能。 打印框架提供的功能可獲取適用於目標打印機的圖形 上下文。