CALayer(非官方翻譯)

Class CALayer

CALayer類管理基于圖像的內(nèi)容菩彬,并允許你對(duì)該內(nèi)容執(zhí)行動(dòng)畫(huà)。圖層通常用于提供視圖的后備存儲(chǔ),但也可以在不顯示內(nèi)容的情況下使用独悴。 圖層的主要工作是管理你提供的可視內(nèi)容,但圖層本身具有可設(shè)置的可視屬性锣尉,例如背景色刻炒,邊框和陰影。 除了管理可視內(nèi)容之外自沧,該層還維護(hù)關(guān)于其內(nèi)容的幾何形狀(例如其位置坟奥,大小和變換)的信息,該信息用于在屏幕上呈現(xiàn)該內(nèi)容。 修改圖層的屬性是如何在圖層的內(nèi)容或幾何圖形上啟動(dòng)動(dòng)畫(huà)爱谁。 層對(duì)象通過(guò)采用CAMediaTiming協(xié)議來(lái)封裝層及其動(dòng)畫(huà)的持續(xù)時(shí)間和起搏晒喷,CAMediaTiming協(xié)議定義了層的定時(shí)信息

Symbols

Creating a Layer 創(chuàng)建圖層

+ layer 創(chuàng)建并返回圖層對(duì)象實(shí)例

Discussion: 如果你繼承了CALayer,你可以重寫(xiě)這個(gè)方法访敌,并且使用它來(lái)提供一個(gè)你指定子類的實(shí)例

- init 返回一個(gè)初始化的CALayer對(duì)象

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

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


Accessing Related Layer Objects 訪問(wèn)相關(guān)層對(duì)象

- presentationLayer 返回一個(gè)呈現(xiàn)圖層的副本凉敲,該對(duì)象表示當(dāng)前顯示在屏幕上的圖層的狀態(tài)

- modelLayer 返回與接收器關(guān)聯(lián)的模型圖層對(duì)象(如果有)


Accessing the Delegate 訪問(wèn)代理

delegate 圖層的代理對(duì)象


Providing the Layer's Content 提供圖層內(nèi)容

contents 提供圖層內(nèi)容的對(duì)象,動(dòng)畫(huà).

Discussion: 這個(gè)屬性的默認(rèn)值為nil寺旺,如果你使用這個(gè)圖層來(lái)顯示一張靜態(tài)圖像荡陷,你可以把包含你想要顯示的圖像的CGImageRef設(shè)置給這個(gè)屬性。為此屬性賦值將導(dǎo)致圖層使用你的圖像迅涮,而不是創(chuàng)建單獨(dú)的后備存儲(chǔ)废赞。如果圖層對(duì)象綁定到視圖對(duì)象,你應(yīng)該避免直接設(shè)置此屬性的內(nèi)容叮姑。視圖和圖層之間的交互通常導(dǎo)致視圖在后續(xù)更新期間代替此屬性的內(nèi)容唉地。

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

contentsRect 在單位坐標(biāo)空間,定義應(yīng)該被使用的圖層內(nèi)容部分的矩形传透。動(dòng)畫(huà)耘沼。允許我們?cè)趫D層邊框里顯示寄宿圖的一個(gè)子域≈煅危可以用于圖片拼合

Discussion: 默認(rèn)為單位矩形(0.0, 0.0, 1.0, 1.0)群嗤。如果請(qǐng)求單位矩形外的像素,則內(nèi)容視圖的邊緣像素將向外擴(kuò)展兵琳。如果提供的是一個(gè)空矩形狂秘,則結(jié)果是未定義的。

contentsCenter定義如果圖層內(nèi)容調(diào)整大小時(shí)如何縮放圖層內(nèi)容的矩形躯肌。動(dòng)畫(huà)者春。默認(rèn)為單位矩形(0.0, 0.0, 1.0, 1.0)

- display 重新加載此圖層的內(nèi)容

- drawInContext: 使用指定的繪圖上下文繪制圖層的內(nèi)容


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

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

eg: layer.contentsGravity = kCAGravityResizeAspect;

opacity 接收器的不透明度清女。動(dòng)畫(huà)

hidden 一個(gè)布爾值指示圖層是否顯示钱烟。動(dòng)畫(huà)

masksToBounds 一個(gè)布爾值指示子圖層是否剪切到圖層的邊界。動(dòng)畫(huà)?? <->UIView: clipsToBounds

mask 一個(gè)可選圖層嫡丙,其alpha通道用于屏蔽圖層內(nèi)容

doubleSided 一個(gè)布爾值指示圖層當(dāng)背離視圖時(shí)是否顯示它的內(nèi)容拴袭。動(dòng)畫(huà)

cornerRadius 繪制圖層的背景圓角時(shí)使用的半徑。動(dòng)畫(huà)

borderWidth 圖層邊框的寬度曙博。動(dòng)畫(huà)

borderColor 圖層邊框的顏色拥刻。動(dòng)畫(huà)

backgroundColor 接收器的背景色。動(dòng)畫(huà)

shadowOpacity 圖層陰影的不透明度羊瘩。動(dòng)畫(huà)

shadowRadius 用于渲染圖層陰影的模糊半徑(以點(diǎn)為單位)泰佳。動(dòng)畫(huà)

shadowOffset 圖層陰影的偏移量(以點(diǎn)為單位)盼砍。動(dòng)畫(huà)

shadowColor 圖層陰影的顏色尘吗。動(dòng)畫(huà)

shadowPath 圖層陰影的形狀逝她。動(dòng)畫(huà)

style 一個(gè)用于存儲(chǔ)未由圖層顯示定義的屬性值的可選字典

allowsEdgeAntialiasing一個(gè)布爾值指示是否允許圖層執(zhí)行邊緣抗鋸齒

allowsGroupOpacity 一個(gè)布爾值指示是否允許圖層將自身復(fù)合為與其父級(jí)分離的組


Accessing the Layer's Filters 訪問(wèn)圖層的過(guò)濾器

filters 應(yīng)用于圖層和其子圖層內(nèi)容的Core Image過(guò)濾器數(shù)組。動(dòng)畫(huà)

compositingFilter 一個(gè)CoreImage過(guò)濾器用于合成圖層及其后面的內(nèi)容睬捶。動(dòng)畫(huà)

backgroundFilters 應(yīng)用于圖層后面的內(nèi)容的CoreImage過(guò)濾器數(shù)組黔宛。動(dòng)畫(huà)

minificationFilter當(dāng)減少內(nèi)容的大小時(shí)使用的過(guò)濾器

minificationFilterBias 縮微過(guò)濾器用于確定細(xì)節(jié)水平的偏差因子

magnificationFilter 當(dāng)增加內(nèi)容的大小時(shí)使用的過(guò)濾器


Configuring the Layer's Rendering Behavior 配置圖層的呈現(xiàn)行為

opaque一個(gè)布爾值指示圖層是否包含完全不透明內(nèi)容。

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

- contentsAreFlipped 返回一個(gè)布爾值擒贸,指示屠城內(nèi)容在呈現(xiàn)時(shí)是否隱式翻轉(zhuǎn)

geometryFlipped 一個(gè)布爾值指示圖層和其子圖層的幾何是否垂直翻轉(zhuǎn)

drawsAsynchronously 一個(gè)布爾值指示繪圖命令是否在后臺(tái)線程中異步延遲和處理

shouldRasterize 一個(gè)布爾值指示圖層在合成之前是否作為位圖呈現(xiàn)臀晃。動(dòng)畫(huà)

rasterizationScale相對(duì)于圖層的坐標(biāo)空間光柵化內(nèi)容的比例

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


Modifying the Layer Geometry 修改圖層幾何結(jié)構(gòu)

frame 圖層的框架矩形

bounds 圖層的邊界矩形。動(dòng)畫(huà)

position 在它的父圖層坐標(biāo)空間中圖層的位置介劫。動(dòng)畫(huà)

zPosition 在z坐標(biāo)軸上圖層的位置徽惋。動(dòng)畫(huà)

anchorPointZ 圖層沿z軸的位置的錨點(diǎn)。動(dòng)畫(huà)

anchorPoint 定義一個(gè)圖層的邊界矩形的錨點(diǎn)座韵。動(dòng)畫(huà)

contentsScale 應(yīng)用于圖層的比例因子险绘。 定義了寄宿圖的像素尺寸和視圖大小的比例,默認(rèn)情況下它是一個(gè)值為1.0的浮點(diǎn)數(shù)誉碴。屬于支持高分辨率屏幕機(jī)制的一部分宦棺。用來(lái)判斷在繪制圖層的時(shí)候應(yīng)該為寄宿圖創(chuàng)建的空間大小,和需要顯示的圖片的拉伸度黔帕。 <->UIView: contentScaleFactor

tip: 用代碼的方式來(lái)處理寄宿圖的時(shí)候代咸,需要手動(dòng)的設(shè)置圖層的contentsScale屬性,否則成黄,圖片在Retina設(shè)備上會(huì)顯示不正確呐芥。

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

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

transform 應(yīng)用于圖層內(nèi)容的變換。動(dòng)畫(huà)

sublayerTransform 指定在呈現(xiàn)時(shí)應(yīng)用于子圖層的變換奋岁。動(dòng)畫(huà)

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

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


Managing the Layer Hierarchy 管理圖層層級(jí)

sublayers 一個(gè)數(shù)組包含圖層的子圖層

superlayer 圖層的父圖層

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

- removeFromSuperlayer 從父層拆離圖層

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

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

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

- replaceSublayer:with:用不同的圖層對(duì)象替換指定的子圖層潮太。


Updating Layer Display 更新圖層顯示

- setNeedsDisplay將圖層的內(nèi)容標(biāo)記為需要更新

- setNeedsDisplayInRect: 將指定矩形內(nèi)的區(qū)域標(biāo)記為需要更新

needsDisplayOnBoundsChange一個(gè)布爾值指示當(dāng)它的邊界矩形改變時(shí)是否必須更新圖層內(nèi)容

- displayIfNeeded如果圖層當(dāng)前被標(biāo)記為需要更新,則啟動(dòng)圖層的更新過(guò)程

- needsDisplay返回一個(gè)布爾值指示圖層是否以標(biāo)記為需要更新

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


Layer Animations 圖層動(dòng)畫(huà)

- addAnimation:forKey: 給圖層渲染樹(shù)添加指定動(dòng)畫(huà)對(duì)象

- animationForKey:使用指定的標(biāo)識(shí)符來(lái)返回一個(gè)動(dòng)畫(huà)對(duì)象

- removeAllAnimations移除依附在圖層上的所有動(dòng)畫(huà)

- removeAnimationForKey:使用指定的鍵來(lái)移除動(dòng)畫(huà)對(duì)象

- animationKeys返回一個(gè)字符串?dāng)?shù)組虾攻,用來(lái)標(biāo)記當(dāng)前附加在圖層的動(dòng)畫(huà)


Managing Layer Resizing and Layout 管理圖層調(diào)整和布局

layoutManager負(fù)責(zé)布置圖層的子圖層對(duì)象

- setNeedsLayout使圖層的布局無(wú)效铡买,并將其標(biāo)記為需要更新

- layoutSublayers告訴圖層更新其布局

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

- needsLayout 返回一個(gè)布爾值霎箍,指示圖層是否已標(biāo)記為需要布局更新

autoresizingMask 一個(gè)位掩碼定義當(dāng)它的父圖層的邊界改變時(shí)如何調(diào)整圖層的大小

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

- resizeSublayersWithOldSize:通知接收器的子圖層接收器的大小已經(jīng)改變了

- preferredFrameSize 返回圖層在其父圖層的坐標(biāo)空間中的首選大小


Managing Layer Constraints 管理圖層約束

constraints用于定位當(dāng)前圖層的子圖層的約束

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


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

- actionForKey: 返回分配給指定鍵的動(dòng)作對(duì)象

actions 包含圖層動(dòng)作的字典

+ defaultActionForKey:為當(dāng)前類返回一個(gè)默認(rèn)的動(dòng)作


Mapping Between Coordinate and Time Spaces 坐標(biāo)和時(shí)空之間的映射

- convertPoint:fromLayer:將點(diǎn)從指定的圖層坐標(biāo)系轉(zhuǎn)換為接收器坐標(biāo)系

- convertPoint:toLayer: 將點(diǎn)從接收器的坐標(biāo)系轉(zhuǎn)換為指定圖層的坐標(biāo)系

- convertRect:fromLayer:將矩形從指定的圖層坐標(biāo)系轉(zhuǎn)換為接收器的坐標(biāo)系

- convertRect:toLayer: 將矩形從接收器的坐標(biāo)系轉(zhuǎn)換為指定圖層的坐標(biāo)系

- convertTime:fromLayer:將時(shí)間間隔從指定圖層的時(shí)間空間轉(zhuǎn)換為接收器的時(shí)間空間

- convertTime:toLayer:將時(shí)間間隔從接收器的時(shí)間空間轉(zhuǎn)換為指定圖層的時(shí)間空間


Hit Testing 點(diǎn)擊測(cè)試

- hitTest:返回包含指定點(diǎn)的圖層層次結(jié)構(gòu)(包含它自己)中接收器最遠(yuǎn)子圖層

- containsPoint:返回接收器是否包含指定點(diǎn)


Scrolling 滾動(dòng)

visibleRect圖層在它自己的坐標(biāo)空間中的可見(jiàn)區(qū)域

- scrollPoint: 在圖層最近的祖先滾動(dòng)圖層中啟動(dòng)滾動(dòng)奇钞,以使指定點(diǎn)位于滾動(dòng)圖層的原點(diǎn)

- scrollRectToVisible 在圖層最近的祖先滾動(dòng)圖層中啟動(dòng)滾動(dòng),以使指定的矩形變?yōu)榭梢?jiàn)


Identifying the Layer 圖層的標(biāo)識(shí)

name 接收器的名字


Key-Value Coding Extensions 鍵值編碼擴(kuò)展

- shouldArchiveValueForKey:返回一個(gè)布爾值指示是否應(yīng)存檔指定鍵的值

+ defaultValueForKey: 指定一個(gè)默認(rèn)值關(guān)聯(lián)一個(gè)指定的鍵


Constants 常量

CAAutoresizingMask 這些常量由autoresizingMask屬性使用

Action Ifentifiers 這些常量是預(yù)定義動(dòng)作標(biāo)識(shí)符漂坏,通過(guò)actionForKey:,addAnimation:forKey,defaultActionForKey:,removeAnimationForKey:,訪問(wèn)圖層的過(guò)濾器以及CAAction的協(xié)議方法runActionForKey:object:arguments:使用

CAEdgeAntialiasingMask這個(gè)標(biāo)記由edgeAntialiasingMask屬性使用

Contents Gravity Values 當(dāng)圖層的邊界大于內(nèi)容對(duì)象的邊界時(shí)景埃,內(nèi)容重力常量指定內(nèi)容對(duì)象的位置媒至。被contentsGravity屬性使用

Identity Transform定義核心動(dòng)畫(huà)使用的原始轉(zhuǎn)換矩陣

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

CATransform3D定義在核心動(dòng)畫(huà)使用的標(biāo)準(zhǔn)轉(zhuǎn)換矩陣


Initializers 初始化器

+ layerWithRemoteClientId:


Instance Properties 實(shí)例屬性

contentsFormat

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市谷徙,隨后出現(xiàn)的幾起案子拒啰,更是在濱河造成了極大的恐慌,老刑警劉巖完慧,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谋旦,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡屈尼,警方通過(guò)查閱死者的電腦和手機(jī)册着,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)脾歧,“玉大人甲捏,你說(shuō)我怎么就攤上這事”拗矗” “怎么了司顿?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蚕冬。 經(jīng)常有香客問(wèn)我免猾,道長(zhǎng),這世上最難降的妖魔是什么囤热? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任猎提,我火速辦了婚禮,結(jié)果婚禮上旁蔼,老公的妹妹穿的比我還像新娘锨苏。我一直安慰自己,他們只是感情好棺聊,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布伞租。 她就那樣靜靜地躺著,像睡著了一般限佩。 火紅的嫁衣襯著肌膚如雪葵诈。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,158評(píng)論 1 308
  • 那天祟同,我揣著相機(jī)與錄音作喘,去河邊找鬼。 笑死晕城,一個(gè)胖子當(dāng)著我的面吹牛泞坦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播砖顷,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼贰锁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼赃梧!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起豌熄,我...
    開(kāi)封第一講書(shū)人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤授嘀,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后房轿,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體粤攒,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡所森,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年囱持,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片焕济。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡纷妆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出晴弃,到底是詐尸還是另有隱情掩幢,我是刑警寧澤,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布上鞠,位于F島的核電站际邻,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏芍阎。R本人自食惡果不足惜世曾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望谴咸。 院中可真熱鬧轮听,春花似錦、人聲如沸岭佳。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)珊随。三九已至述寡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間叶洞,已是汗流浹背鲫凶。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留京办,地道東北人掀序。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓呀邢,卻偏偏與公主長(zhǎng)得像淮悼,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 版本記錄 前言 大家都知道UIView之所以可以顯示內(nèi)容漆魔,主要是靠其底層的CALayer。CALayer包含在Qu...
    刀客傳奇閱讀 1,507評(píng)論 2 2
  • 在iOS中隨處都可以看到絢麗的動(dòng)畫(huà)效果泌霍,實(shí)現(xiàn)這些動(dòng)畫(huà)的過(guò)程并不復(fù)雜甲抖,今天將帶大家一窺ios動(dòng)畫(huà)全貌。在這里你可以看...
    每天刷兩次牙閱讀 8,510評(píng)論 6 30
  • 在iOS中隨處都可以看到絢麗的動(dòng)畫(huà)效果沾瓦,實(shí)現(xiàn)這些動(dòng)畫(huà)的過(guò)程并不復(fù)雜满着,今天將帶大家一窺iOS動(dòng)畫(huà)全貌。在這里你可以看...
    F麥子閱讀 5,115評(píng)論 5 13
  • 轉(zhuǎn)載:http://www.reibang.com/p/32fcadd12108 每個(gè)UIView有一個(gè)伙伴稱為l...
    F麥子閱讀 6,220評(píng)論 0 13
  • 戰(zhàn)略就是生存 戰(zhàn)略就是預(yù)見(jiàn) 戰(zhàn)略就是理念 戰(zhàn)略就是航海圖 戰(zhàn)略就是找魂 戰(zhàn)略就是竟合 戰(zhàn)略就是破局 ——王志綱工作...
    吳鵬自遠(yuǎn)方閱讀 615評(píng)論 0 1