1.關(guān)于CALayer 通過 CALayer,就能做出跟 UIView 一樣的界面效果,既然 CALayer 和 UIView 都能實(shí)現(xiàn)相同的顯示效果,那究 竟該選擇誰好呢? 其實(shí),對(duì)比 CALayer,UIView 多了一個(gè)事件處理的功能。也就是說,CALayer 不能處理用戶的觸摸事件,而 UIView 可以。 所以,如果顯示出來的東西需要跟用戶進(jìn)行交互的話,用 UIView;如果不需要跟用戶進(jìn)行交互,用 UIView 或 者 CALayer 都可以。 當(dāng)然,CALayer 的性能會(huì)高一些,因?yàn)樗倭耸录幚淼墓δ埽虞p量級(jí)。
每一個(gè) UIView 內(nèi)部都默認(rèn)關(guān)聯(lián)著一個(gè) CALayer,我們可用稱這個(gè) Layer 為 Root Layer(根層)。 所有的非 Root Layer,也就是手動(dòng)創(chuàng)建的 CALayer 對(duì)象,都存在著隱式動(dòng)畫。 什么是隱式動(dòng)畫? 當(dāng)對(duì)非 Root Layer 的部分屬性進(jìn)行修改時(shí),默認(rèn)會(huì)自動(dòng)產(chǎn)生一些動(dòng)畫效果,而這些屬性稱為 Animatable PRoperties(可動(dòng)畫屬性)。 幾個(gè)常見的 Animatable Properties: (1)bounds:用于設(shè)置 CALayer 的寬度和高度。修改這個(gè)屬性會(huì)產(chǎn)生縮放動(dòng)畫 (2)backgroundColor:用于設(shè)置 CALayer 的背景色。修改這個(gè)屬性會(huì)產(chǎn)生背景色的漸變動(dòng)畫 (3)position:用于設(shè)置 CALayer 的位置。修改這個(gè)屬性會(huì)產(chǎn)生平移動(dòng)畫
2.核心動(dòng)畫(Core Animation) 核心動(dòng)畫的動(dòng)畫效果只是“假象”,產(chǎn)生動(dòng)畫的那個(gè) view 實(shí)際上并未發(fā)生任何變化。 Core Animation 的動(dòng)畫執(zhí)行過程都是在后臺(tái)操作的,不會(huì)阻塞主線程
3.單例 優(yōu)點(diǎn): 可以阻止其他對(duì)象實(shí)例化單例對(duì)象的副本,從而確保所有對(duì)象都訪問唯一實(shí)例 缺點(diǎn): 單例對(duì)象一旦建立,對(duì)象指針是保存在靜態(tài)區(qū)的,單例對(duì)象在堆中分配的內(nèi)存空間,會(huì)在應(yīng)用程序終止后才 會(huì)被釋放
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注