CALayer(非官方翻譯)

Class CALayer

CALayer類管理基于圖像的內容,并允許你對該內容執行動畫。圖層通常用于提供視圖的后備存儲,但也可以在不顯示內容的情況下使用。 圖層的主要工作是管理你提供的可視內容,但圖層本身具有可設置的可視屬性,例如背景色,邊框和陰影。 除了管理可視內容之外,該層還維護關于其內容的幾何形狀(例如其位置,大小和變換)的信息,該信息用于在屏幕上呈現該內容。 修改圖層的屬性是如何在圖層的內容或幾何圖形上啟動動畫。 層對象通過采用CAMediaTiming協議來封裝層及其動畫的持續時間和起搏,CAMediaTiming協議定義了層的定時信息

Symbols

Creating a Layer 創建圖層

+ layer 創建并返回圖層對象實例

Discussion: 如果你繼承了CALayer,你可以重寫這個方法,并且使用它來提供一個你指定子類的實例

- init 返回一個初始化的CALayer對象

Discussion: 這是不在表示層中的圖層對象的初始化器

initWithLayer: 覆蓋來拷貝或初始化指定圖層的自定義字段


Accessing Related Layer Objects 訪問相關層對象

- presentationLayer 返回一個呈現圖層的副本,該對象表示當前顯示在屏幕上的圖層的狀態

- modelLayer 返回與接收器關聯的模型圖層對象(如果有)


Accessing the Delegate 訪問代理

delegate 圖層的代理對象


Providing the Layer's Content 提供圖層內容

contents 提供圖層內容的對象,動畫.

Discussion: 這個屬性的默認值為nil,如果你使用這個圖層來顯示一張靜態圖像,你可以把包含你想要顯示的圖像的CGImageRef設置給這個屬性。為此屬性賦值將導致圖層使用你的圖像,而不是創建單獨的后備存儲。如果圖層對象綁定到視圖對象,你應該避免直接設置此屬性的內容。視圖和圖層之間的交互通常導致視圖在后續更新期間代替此屬性的內容。

eg: layer.contents = (__bridge id)image.CGImage;

contentsRect 在單位坐標空間,定義應該被使用的圖層內容部分的矩形。動畫。允許我們在圖層邊框里顯示寄宿圖的一個子域??梢杂糜趫D片拼合

Discussion: 默認為單位矩形(0.0, 0.0, 1.0, 1.0)。如果請求單位矩形外的像素,則內容視圖的邊緣像素將向外擴展。如果提供的是一個空矩形,則結果是未定義的。

contentsCenter定義如果圖層內容調整大小時如何縮放圖層內容的矩形。動畫。默認為單位矩形(0.0, 0.0, 1.0, 1.0)

- display 重新加載此圖層的內容

- drawInContext: 使用指定的繪圖上下文繪制圖層的內容


Modifying the Layer's Appearance 修改圖層外觀

contentsGravity 一個常量,指定圖層內容如何在其范圍內定位或縮放 <->UIView: contentMode

eg: layer.contentsGravity = kCAGravityResizeAspect;

opacity 接收器的不透明度。動畫

hidden 一個布爾值指示圖層是否顯示。動畫

masksToBounds 一個布爾值指示子圖層是否剪切到圖層的邊界。動畫?? <->UIView: clipsToBounds

mask 一個可選圖層,其alpha通道用于屏蔽圖層內容

doubleSided 一個布爾值指示圖層當背離視圖時是否顯示它的內容。動畫

cornerRadius 繪制圖層的背景圓角時使用的半徑。動畫

borderWidth 圖層邊框的寬度。動畫

borderColor 圖層邊框的顏色。動畫

backgroundColor 接收器的背景色。動畫

shadowOpacity 圖層陰影的不透明度。動畫

shadowRadius 用于渲染圖層陰影的模糊半徑(以點為單位)。動畫

shadowOffset 圖層陰影的偏移量(以點為單位)。動畫

shadowColor 圖層陰影的顏色。動畫

shadowPath 圖層陰影的形狀。動畫

style 一個用于存儲未由圖層顯示定義的屬性值的可選字典

allowsEdgeAntialiasing一個布爾值指示是否允許圖層執行邊緣抗鋸齒

allowsGroupOpacity 一個布爾值指示是否允許圖層將自身復合為與其父級分離的組


Accessing the Layer's Filters 訪問圖層的過濾器

filters 應用于圖層和其子圖層內容的Core Image過濾器數組。動畫

compositingFilter 一個CoreImage過濾器用于合成圖層及其后面的內容。動畫

backgroundFilters 應用于圖層后面的內容的CoreImage過濾器數組。動畫

minificationFilter當減少內容的大小時使用的過濾器

minificationFilterBias 縮微過濾器用于確定細節水平的偏差因子

magnificationFilter 當增加內容的大小時使用的過濾器


Configuring the Layer's Rendering Behavior 配置圖層的呈現行為

opaque一個布爾值指示圖層是否包含完全不透明內容。

edgeAntialiasingMask 位掩碼定義如何光柵化接收器的邊緣

- contentsAreFlipped 返回一個布爾值,指示屠城內容在呈現時是否隱式翻轉

geometryFlipped 一個布爾值指示圖層和其子圖層的幾何是否垂直翻轉

drawsAsynchronously 一個布爾值指示繪圖命令是否在后臺線程中異步延遲和處理

shouldRasterize 一個布爾值指示圖層在合成之前是否作為位圖呈現。動畫

rasterizationScale相對于圖層的坐標空間光柵化內容的比例

- renderInContext: 將接收器和其子圖層渲染到指定的上下文中


Modifying the Layer Geometry 修改圖層幾何結構

frame 圖層的框架矩形

bounds 圖層的邊界矩形。動畫

position 在它的父圖層坐標空間中圖層的位置。動畫

zPosition 在z坐標軸上圖層的位置。動畫

anchorPointZ 圖層沿z軸的位置的錨點。動畫

anchorPoint 定義一個圖層的邊界矩形的錨點。動畫

contentsScale 應用于圖層的比例因子。 定義了寄宿圖的像素尺寸和視圖大小的比例,默認情況下它是一個值為1.0的浮點數。屬于支持高分辨率屏幕機制的一部分。用來判斷在繪制圖層的時候應該為寄宿圖創建的空間大小,和需要顯示的圖片的拉伸度。 <->UIView: contentScaleFactor

tip: 用代碼的方式來處理寄宿圖的時候,需要手動的設置圖層的contentsScale屬性,否則,圖片在Retina設備上會顯示不正確。

eg: layer.contentsScale = [UIScreen mainScreen].scale;

Managing the Layer's Transform 管理圖層的變換

transform 應用于圖層內容的變換。動畫

sublayerTransform 指定在呈現時應用于子圖層的變換。動畫

- affineTransform 返回圖層變換的仿射版本

- setAffineTransform: 將圖層的變換設置為指定的仿射變換


Managing the Layer Hierarchy 管理圖層層級

sublayers 一個數組包含圖層的子圖層

superlayer 圖層的父圖層

- addSublayer:將圖層添加到子圖層列表中

- removeFromSuperlayer 從父層拆離圖層

- insertSublayer:atIndex: 將指定的層插入指定索引處的接收方子層列表中。

- insertSublayer:below:將指定的子層插入到已經屬于接收器的不同子層下面。

- insertSublayer:above: 將指定的子層插入到已屬于接收器的不同子層上。

- replaceSublayer:with:用不同的圖層對象替換指定的子圖層。


Updating Layer Display 更新圖層顯示

- setNeedsDisplay將圖層的內容標記為需要更新

- setNeedsDisplayInRect: 將指定矩形內的區域標記為需要更新

needsDisplayOnBoundsChange一個布爾值指示當它的邊界矩形改變時是否必須更新圖層內容

- displayIfNeeded如果圖層當前被標記為需要更新,則啟動圖層的更新過程

- needsDisplay返回一個布爾值指示圖層是否以標記為需要更新

+ needsDisplayForKey:返回一個布爾值指示對指定鍵的更改是否要求重新顯示該圖層


Layer Animations 圖層動畫

- addAnimation:forKey: 給圖層渲染樹添加指定動畫對象

- animationForKey:使用指定的標識符來返回一個動畫對象

- removeAllAnimations移除依附在圖層上的所有動畫

- removeAnimationForKey:使用指定的鍵來移除動畫對象

- animationKeys返回一個字符串數組,用來標記當前附加在圖層的動畫


Managing Layer Resizing and Layout 管理圖層調整和布局

layoutManager負責布置圖層的子圖層對象

- setNeedsLayout使圖層的布局無效,并將其標記為需要更新

- layoutSublayers告訴圖層更新其布局

- layoutIfNeeded 如果需要,重新計算接收器的布局

- needsLayout 返回一個布爾值,指示圖層是否已標記為需要布局更新

autoresizingMask 一個位掩碼定義當它的父圖層的邊界改變時如何調整圖層的大小

- resizeWithOldSuperlayerSize: 通知接收器其父圖層的大小改變了

- resizeSublayersWithOldSize:通知接收器的子圖層接收器的大小已經改變了

- preferredFrameSize 返回圖層在其父圖層的坐標空間中的首選大小


Managing Layer Constraints 管理圖層約束

constraints用于定位當前圖層的子圖層的約束

- addConstraint:給圖層添加指定約束


Getting the Layer's Actions 獲取圖層的行為

- actionForKey: 返回分配給指定鍵的動作對象

actions 包含圖層動作的字典

+ defaultActionForKey:為當前類返回一個默認的動作


Mapping Between Coordinate and Time Spaces 坐標和時空之間的映射

- convertPoint:fromLayer:將點從指定的圖層坐標系轉換為接收器坐標系

- convertPoint:toLayer: 將點從接收器的坐標系轉換為指定圖層的坐標系

- convertRect:fromLayer:將矩形從指定的圖層坐標系轉換為接收器的坐標系

- convertRect:toLayer: 將矩形從接收器的坐標系轉換為指定圖層的坐標系

- convertTime:fromLayer:將時間間隔從指定圖層的時間空間轉換為接收器的時間空間

- convertTime:toLayer:將時間間隔從接收器的時間空間轉換為指定圖層的時間空間


Hit Testing 點擊測試

- hitTest:返回包含指定點的圖層層次結構(包含它自己)中接收器最遠子圖層

- containsPoint:返回接收器是否包含指定點


Scrolling 滾動

visibleRect圖層在它自己的坐標空間中的可見區域

- scrollPoint: 在圖層最近的祖先滾動圖層中啟動滾動,以使指定點位于滾動圖層的原點

- scrollRectToVisible 在圖層最近的祖先滾動圖層中啟動滾動,以使指定的矩形變為可見


Identifying the Layer 圖層的標識

name 接收器的名字


Key-Value Coding Extensions 鍵值編碼擴展

- shouldArchiveValueForKey:返回一個布爾值指示是否應存檔指定鍵的值

+ defaultValueForKey: 指定一個默認值關聯一個指定的鍵


Constants 常量

CAAutoresizingMask 這些常量由autoresizingMask屬性使用

Action Ifentifiers 這些常量是預定義動作標識符,通過actionForKey:,addAnimation:forKey,defaultActionForKey:,removeAnimationForKey:,訪問圖層的過濾器以及CAAction的協議方法runActionForKey:object:arguments:使用

CAEdgeAntialiasingMask這個標記由edgeAntialiasingMask屬性使用

Contents Gravity Values 當圖層的邊界大于內容對象的邊界時,內容重力常量指定內容對象的位置。被contentsGravity屬性使用

Identity Transform定義核心動畫使用的原始轉換矩陣

Scaling Filters這些常量指定被magnificationFilterminificationFilter使用的縮放過濾器

CATransform3D定義在核心動畫使用的標準轉換矩陣


Initializers 初始化器

+ layerWithRemoteClientId:


Instance Properties 實例屬性

contentsFormat

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,362評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,577評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,486評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,852評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,600評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,944評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,944評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,108評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,652評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,385評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,616評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,111評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,798評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,205評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,537評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,334評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,570評論 2 379

推薦閱讀更多精彩內容

  • 版本記錄 前言 大家都知道UIView之所以可以顯示內容,主要是靠其底層的CALayer。CALayer包含在Qu...
    刀客傳奇閱讀 1,517評論 2 2
  • 在iOS中隨處都可以看到絢麗的動畫效果,實現這些動畫的過程并不復雜,今天將帶大家一窺ios動畫全貌。在這里你可以看...
    每天刷兩次牙閱讀 8,551評論 6 30
  • 在iOS中隨處都可以看到絢麗的動畫效果,實現這些動畫的過程并不復雜,今天將帶大家一窺iOS動畫全貌。在這里你可以看...
    F麥子閱讀 5,140評論 5 13
  • 轉載:http://www.lxweimin.com/p/32fcadd12108 每個UIView有一個伙伴稱為l...
    F麥子閱讀 6,284評論 0 13
  • 戰略就是生存 戰略就是預見 戰略就是理念 戰略就是航海圖 戰略就是找魂 戰略就是竟合 戰略就是破局 ——王志綱工作...
    吳鵬自遠方閱讀 629評論 0 1