4.4 圖層蒙板

2018-02-24 15:07 更新

圖層蒙板

????通過masksToBounds屬性,我們可以沿邊界裁剪圖形;通過cornerRadius屬性,我們還可以設(shè)定一個圓角。但是有時候你希望展現(xiàn)的內(nèi)容不是在一個矩形或圓角矩形。比如,你想展示一個有星形框架的圖片,又或者想讓一些古卷文字慢慢漸變成背景色,而不是一個突兀的邊界。

????使用一個32位有alpha通道的png圖片通常是創(chuàng)建一個無矩形視圖最方便的方法,你可以給它指定一個透明蒙板來實現(xiàn)。但是這個方法不能讓你以編碼的方式動態(tài)地生成蒙板,也不能讓子圖層或子視圖裁剪成同樣的形狀。

????CALayer有一個屬性叫做mask可以解決這個問題。這個屬性本身就是個CALayer類型,有和其他圖層一樣的繪制和布局屬性。它類似于一個子圖層,相對于父圖層(即擁有該屬性的圖層)布局,但是它卻不是一個普通的子圖層。不同于那些繪制在父圖層中的子圖層,mask圖層定義了父圖層的部分可見區(qū)域。

????mask圖層的Color屬性是無關(guān)緊要的,真正重要的是圖層的輪廓。mask屬性就像是一個餅干切割機,mask圖層實心的部分會被保留下來,其他的則會被拋棄。(如圖4.12)

????如果mask圖層比父圖層要小,只有在mask圖層里面的內(nèi)容才是它關(guān)心的,除此以外的一切都會被隱藏起來。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號