1.關于CALayer 通過 CALayer,就能做出跟 UIView 一樣的界面效果,既然 CALayer 和 UIView 都能實現相同的顯示效果,那究 竟該選擇誰好呢? 其實,對比 CALayer,UIView 多了一個事件處理的功能。也就是說,CALayer 不能處理用戶的觸摸事件,而 UIView 可以。 所以,如果顯示出來的東西需要跟用戶進行交互的話,用 UIView;如果不需要跟用戶進行交互,用 UIView 或 者 CALayer 都可以。 當然,CALayer 的性能會高一些,因為它少了事件處理的功能,更加輕量級。
每一個 UIView 內部都默認關聯著一個 CALayer,我們可用稱這個 Layer 為 Root Layer(根層)。 所有的非 Root Layer,也就是手動創建的 CALayer 對象,都存在著隱式動畫。 什么是隱式動畫? 當對非 Root Layer 的部分屬性進行修改時,默認會自動產生一些動畫效果,而這些屬性稱為 Animatable PRoperties(可動畫屬性)。 幾個常見的 Animatable Properties: (1)bounds:用于設置 CALayer 的寬度和高度。修改這個屬性會產生縮放動畫 (2)backgroundColor:用于設置 CALayer 的背景色。修改這個屬性會產生背景色的漸變動畫 (3)position:用于設置 CALayer 的位置。修改這個屬性會產生平移動畫
2.核心動畫(Core Animation) 核心動畫的動畫效果只是“假象”,產生動畫的那個 view 實際上并未發生任何變化。 Core Animation 的動畫執行過程都是在后臺操作的,不會阻塞主線程
3.單例 優點: 可以阻止其他對象實例化單例對象的副本,從而確保所有對象都訪問唯一實例 缺點: 單例對象一旦建立,對象指針是保存在靜態區的,單例對象在堆中分配的內存空間,會在應用程序終止后才 會被釋放
新聞熱點
疑難解答