當(dāng)圖層屬性的混合體被指定為在未預(yù)合成之前不能直接在屏幕中繪制時(shí),屏幕外渲染就被喚起了。屏幕外渲染并不意味著軟件繪制万矾,但是它意味著圖層必須在被顯示之前在一個(gè)屏幕外上下文中被渲染(不論CPU還是GPU)重绷。圖層的以下屬性將會觸發(fā)屏幕外繪制:
圓角(當(dāng)和maskToBounds一起使用時(shí))
圖層蒙板
-
陰影
屏幕外渲染和我們啟用光柵化時(shí)相似,除了它并沒有像光柵化圖層那么消耗大堰酿,子圖層并沒有被影響到疾宏,而且結(jié)果也沒有被緩存,所以不會有長期的內(nèi)存占用触创。但是坎藐,如果太多圖層在屏幕外渲染依然會影響到性能。
有時(shí)候我們可以把那些需要屏幕外繪制的圖層開啟光柵化以作為一個(gè)優(yōu)化方式哼绑,前提是這些圖層并不會被頻繁地重繪岩馍。
對于那些需要動畫而且要在屏幕外渲染的圖層來說,你可以用CAShapeLayer抖韩,contentsCenter或者shadowPath來獲得同樣的表現(xiàn)而且較少地影響到性能蛀恩。