alpha
這個屬性只能影響當(dāng)前視圖谒拴,不能連帶影響子視圖
當(dāng)把a(bǔ)lpha的值設(shè)置成0以后:
1.當(dāng)前view和subview都會被隱藏玻佩,而不管subview的alpha值為多少淆党。
2.當(dāng)前view會從響應(yīng)者鏈中移除吼蚁,而響應(yīng)者鏈中的下一個會成為第一響應(yīng)者。
可以當(dāng)做動畫進(jìn)行動態(tài)改變
alpha = 0 時仍舊接收事件辙谜,但是這個操作比Hidden開銷大
@property(nonatomic) CGFloat alpha;
hidden
默認(rèn)為NO俺榆,就是顯示狀態(tài)
hidden的視圖不再接收事件
當(dāng)把hidden設(shè)為YES時:
1.當(dāng)前view和subview都會被隱藏,而不管subview和hidden值為多少装哆。
2.當(dāng)前view會從響應(yīng)者鏈中移除罐脊,而響應(yīng)者鏈的下一個會成為第一響應(yīng)者。
@property(nonatomic, getter=isHidden) BOOL hidden;
hidden的視圖仍然在父視圖的子視圖列表里蜕琴,而且響應(yīng)自適應(yīng)autoresizing的事件
hidden的視圖所有子視圖也會被Hidden而且它們的Hidden屬性不會被改變
opaque
該屬性為BOOL值萍桌,UIView的默認(rèn)值是YES,但UIButton等子類的默認(rèn)值都是NO奸绷。opaque表示當(dāng)前UIView是否不透明梗夸,不過搞笑的是事實(shí)上它卻決定不了當(dāng)前UIView是不是不透明,比如你將opaque設(shè)為NO号醉,該UIView照樣是可見的
如果opaque設(shè)置為YES反症,那么視圖會被當(dāng)做全視圖來對待,系統(tǒng)會重繪整個視圖
如果opaque設(shè)置為NO畔派,那么系統(tǒng)會減少開銷铅碍,以其中的內(nèi)容來判定重繪的視圖
如果把視圖的背景色設(shè)置為透明那個,那么opaque最好設(shè)置為NO线椰,減少開銷
前面講過胞谈,顯示器中的每個像素點(diǎn)都可以顯示一個由RGBA顏色空間組成的色值,比如上圖中有紅色和綠色兩個圖層色塊憨愉,對于沒有交叉的部分烦绳,即純紅色和綠色部分來說,對應(yīng)位置的像素點(diǎn)只需要簡單的顯示紅或綠配紫,對應(yīng)的RGBA為(1径密,0,0躺孝,1)和(0享扔,1底桂,0,1)就行了惧眠,負(fù)責(zé)圖形顯示的GPU需要很小的計算量就可以確定像素點(diǎn)對應(yīng)的顯示內(nèi)容籽懦。
問題是紅色和綠色還有相交的一塊,其相交的顏色為黃色氛魁。這里的黃色是怎么來的呢暮顺?原來,GPU會通過圖層一和圖層二的顏色進(jìn)行圖層混合呆盖,計算出混合部分的顏色拖云,最理想情況的計算公式如下:
R = S + D * ( 1 – Sa )
其中,R表示混合結(jié)果的顏色应又,S是源顏色(位于上層的紅色圖層一),D是目標(biāo)顏色(位于下層的綠色圖層二)乏苦,Sa是源顏色的alpha值株扛,即透明度。公式中所有的S和D顏色都假定已經(jīng)預(yù)先乘以了他們的透明度汇荐。
知道圖層混合的基本原理以后洞就,再回到正題說說opaque屬性的作用。當(dāng)UIView的opaque屬性被設(shè)為YES以后掀淘,按照上面的公式旬蟋,也就是Sa的值為1,這個時候公式就變成了:
R = S
即不管D為什么革娄,結(jié)果都一樣倾贰。因此GPU將不會做任何的計算合成,不需要考慮它下方的任何東西(因?yàn)槎急凰趽踝×?拦惋,而是簡單從這個層拷貝匆浙。這節(jié)省了GPU相當(dāng)大的工作量。由此看來厕妖,opaque屬性的真實(shí)用處是給繪圖系統(tǒng)提供一個性能優(yōu)化開關(guān)首尼!
按照前面的邏輯,當(dāng)opaque屬性被設(shè)為YES時言秸,GPU就不會再利用圖層顏色合成公式去合成真正的色值软能。因此,如果opaque被設(shè)置成YES举畸,而對應(yīng)UIView的alpha屬性不為1.0的時候查排,就會有不可預(yù)料的情況發(fā)生,這一點(diǎn)蘋果在官方文檔中有明確的說明:
An opaque view is expected to fill its bounds with entirely opaque content—that is, the content should have an alpha value of 1.0. If the view is opaque and either does not fill its bounds or contains wholly or partially transparent content,the results are unpredictable. You should always set the value of this property to NO if the view is fully or partially transparent.
大家切記>愣瘛1⑧隆7兑ā!
四了罪、最后
當(dāng)把UIView的alpha屬性設(shè)成0锭环,或者把hidden設(shè)成YES的時候,當(dāng)前UIView和它所包含的子UIView都會變成不可見泊藕,同時也不會再響應(yīng)event事件辅辩。注意這里是或的關(guān)系,即只要設(shè)置了其中的一個都會有此效果娃圆,而不管另外一個屬性的值是什么玫锋。
alpha扮惦、hidden和opaque屬性之間的關(guān)系和區(qū)別
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來看蚜,“玉大人叫搁,你說我怎么就攤上這事」┭祝” “怎么了渴逻?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長碱茁。 經(jīng)常有香客問我裸卫,道長,這世上最難降的妖魔是什么纽竣? 我笑而不...
- 正文 為了忘掉前任墓贿,我火速辦了婚禮,結(jié)果婚禮上蜓氨,老公的妹妹穿的比我還像新娘聋袋。我一直安慰自己,他們只是感情好穴吹,可當(dāng)我...
- 文/花漫 我一把揭開白布幽勒。 她就那樣靜靜地躺著,像睡著了一般港令。 火紅的嫁衣襯著肌膚如雪啥容。 梳的紋絲不亂的頭發(fā)上锈颗,一...
- 文/蒼蘭香墨 我猛地睜開眼炭臭,長吁一口氣:“原來是場噩夢啊……” “哼永脓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鞋仍,我...
- 序言:老撾萬榮一對情侶失蹤常摧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后凿试,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體排宰,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年那婉,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片党瓮。...
- 正文 年R本政府宣布枪萄,位于F島的核電站隐岛,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏瓷翻。R本人自食惡果不足惜聚凹,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望齐帚。 院中可真熱鬧妒牙,春花似錦、人聲如沸对妄。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽剪菱。三九已至摩瞎,卻和暖如春拴签,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背旗们。 一陣腳步聲響...
- 正文 我出身青樓杖剪,卻偏偏與公主長得像,于是被迫代替她去往敵國和親驰贷。 傳聞我的和親對象是個殘疾皇子盛嘿,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 一次兆、alpha 液晶顯示器是由一個個的像素點(diǎn)組成的,每個像素點(diǎn)都可以顯示一個由RGBA顏色空間組成的一種色值锹锰。其中...
- UIView的這幾個屬性讓我困惑了好一陣子恃慧,通過翻看官方文檔和stackoverflow等網(wǎng)上資源园蝠,對它們有了一定...
- 本文參考 http://blog.csdn.net/wzzvictory/article/details/1007...