闡述
大部分業務情形下UI設計師會指定控件的背景顏色,但爲了更好的封裝,開發的時候往往將背景調整爲透明以便適配更多的場景。一般情況使用UIView簡單疊加封裝方式對調整顏色並不具有多大的難度,但在使用 CGContext 自定義控件時,調整背景還是有些“小坑”,這裏記錄一下相關的注意事項。
記錄
1 背景
通常我們使用 CGContext 自定義控件時,會使用 .setFillColor & .fill 聯動設置背景。(如下方)
但若想控件背景調整爲透明,使用上述方法得到的效果將與預期不同,背景是黑色。(如下方)
2 配置
正確的方式不是往內部填充顏色,而是將原有的顏色配置移除。即:
並且需要在當前控件的 init 方法或是 layoutSubviews 方法中,將控件背景設置爲透明,否則背景將還是黑色。(具體調整如下方)
實現的效果如下:
在官方文檔中,對 clear 方法的介紹是設置當前區域爲透明。
資料
1. https://stackoverflow.com/questions/2125543/setting-a-cgcontext-transparent-background
2. http://www.cocoachina.com/bbs/read.php?tid-86891-page-2.html