iOS開發中,有很多設置透明的方法.
故事板上的一些設置
有以下幾個
-
第一個是view的顏色設置里面
1.opacity(譯為:不透明度)
點這里
這里是常用的顏色設置,和代碼創建的顏色設置是一樣的效果,但是要注意的是里面的opacity只是對顏色的設置,對容器中其他view并沒有什么影響
效果如下
opacity翻譯過來是不透明度的意思,但是在這里我只能理解為顏色的透明度,我感覺這個和PS或其他照片處理工具里調試的顏色透明差不多,
-
alpha
而和它意思相近的還有一個是上圖的background上面的alpha,和opacity作用是不同的,alpha意思為:透明度
對比看就是知道這個和opacity的區別了(上傳圖片壓縮,途中文字和北京是都變成透明的了)
最里層的view是藍色
也就是說alpha直接影響的是view以及內部文字的透明,再看一下下面的圖片做一下對比會更清楚
這里我將中間層黃色view設置alpha為0.5,直接導致它的顏色透明能看到底層紅色,同時,也導致最里層藍色view和紅色重疊成紫色
所以這里的alpha是能直接影響view容器中也就是全局的所有子控件的顏色的!
至于聽說的透明度影響性能的說法:
他們在模擬器中運行內存中的大小好像并沒有什么區別,但在實際運行的性能的影響有待驗證
不透明
半透明
3.Hidden
很直接,字面意思,是個BOOL值,勾選就直接隱藏掉了,代碼中作用一樣
4.opaque
沒有效果也最神奇的opaque
查資料顯示opaque是影響繪圖層的一個屬性,也是會影響性能的,個人有待證實,還不知道如何看出差別
opaque = YES,不透明; opaque = NO,透明
該屬性為BOOL值,UIView的默認值是YES,但UIButton等子類的默認值都是NO。opaque表示
當前UIView是否不透明,不過搞笑的是事實上它卻決定不了當前UIView是不是不透明,比如你將opaque
設為NO,該UIView照樣是可見的。其作用在于:給繪圖系統提供一個性能優化開關。如果該值為YES,那么
繪圖在繪制該視圖的時候把整個視圖當做不透明對待。這樣,繪圖系統在執行繪圖過程中會優化一些操作并
提供系統性能;如果是設置為NO,繪圖系統將其和其他內容平等對待,不去做優化操作。為了性能方面的考
量,默認被置為YES(意味著優化)。
來自CSDN作者u010850094的一片文章
ios開發之View屬性hidden, opaque, alpha, opacity的區別
該文章說明很詳細,還有關于透明度對時間的響應鏈的影響,都有說明.
而如果我們在代碼中設置使用 RGBA中的alpha設置透明度的話,效果效果一樣,是會影響到容器中的subView的透明度的