幾種設(shè)置"透明度"的方法與區(qū)別

iOS開發(fā)中,有很多設(shè)置透明的方法.

故事板上的一些設(shè)置

有以下幾個

  • 第一個是view的顏色設(shè)置里面
    1.opacity(譯為:不透明度)


    點這里

    這里是常用的顏色設(shè)置,和代碼創(chuàng)建的顏色設(shè)置是一樣的效果,但是要注意的是里面的opacity只是對顏色的設(shè)置,對容器中其他view并沒有什么影響



    效果如下

    opacity翻譯過來是不透明度的意思,但是在這里我只能理解為顏色的透明度,我感覺這個和PS或其他照片處理工具里調(diào)試的顏色透明差不多,
  1. alpha
    而和它意思相近的還有一個是上圖的background上面的alpha,和opacity作用是不同的,alpha意思為:透明度
    對比看就是知道這個和opacity的區(qū)別了(上傳圖片壓縮,途中文字和北京是都變成透明的了)



    最里層的view是藍色
    也就是說alpha直接影響的是view以及內(nèi)部文字的透明,再看一下下面的圖片做一下對比會更清楚


這里我將中間層黃色view設(shè)置alpha為0.5,直接導(dǎo)致它的顏色透明能看到底層紅色,同時,也導(dǎo)致最里層藍色view和紅色重疊成紫色

所以這里的alpha是能直接影響view容器中也就是全局的所有子控件的顏色的!
至于聽說的透明度影響性能的說法:
他們在模擬器中運行內(nèi)存中的大小好像并沒有什么區(qū)別,但在實際運行的性能的影響有待驗證


不透明
半透明

3.Hidden
很直接,字面意思,是個BOOL值,勾選就直接隱藏掉了,代碼中作用一樣
4.opaque
沒有效果也最神奇的opaque
查資料顯示opaque是影響繪圖層的一個屬性,也是會影響性能的,個人有待證實,還不知道如何看出差別

opaque = YES,不透明; opaque = NO,透明
        該屬性為BOOL值,UIView的默認(rèn)值是YES,但UIButton等子類的默認(rèn)值都是NO。opaque表示
當(dāng)前UIView是否不透明,不過搞笑的是事實上它卻決定不了當(dāng)前UIView是不是不透明,比如你將opaque
設(shè)為NO,該UIView照樣是可見的。其作用在于:給繪圖系統(tǒng)提供一個性能優(yōu)化開關(guān)。如果該值為YES,那么
繪圖在繪制該視圖的時候把整個視圖當(dāng)做不透明對待。這樣,繪圖系統(tǒng)在執(zhí)行繪圖過程中會優(yōu)化一些操作并
提供系統(tǒng)性能;如果是設(shè)置為NO,繪圖系統(tǒng)將其和其他內(nèi)容平等對待,不去做優(yōu)化操作。為了性能方面的考
量,默認(rèn)被置為YES(意味著優(yōu)化)。

來自CSDN作者u010850094的一片文章
ios開發(fā)之View屬性hidden, opaque, alpha, opacity的區(qū)別

該文章說明很詳細(xì),還有關(guān)于透明度對時間的響應(yīng)鏈的影響,都有說明.
而如果我們在代碼中設(shè)置使用 RGBA中的alpha設(shè)置透明度的話,效果效果一樣,是會影響到容器中的subView的透明度的

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容