iOS開發(fā)-Alpha精刷,Hidden與Opaque區(qū)別

iOS開發(fā)-Alpha,Hidden與Opaque區(qū)別

UIView中的這三個屬性用的比較多蔗候,尤其是Alpha和Opaque之間有的時候不是很好分別怒允,稍微整理下:

Alpha(不透明度)

alpha是不透明度,屬性為浮點類型的值锈遥,取值范圍從0到1.0纫事,表示從完全透明到完全不透明,其特性有當前UIView的alpha值會被其所有subview繼承所灸。alpha值會影響到UIView跟其所有subview丽惶,alpha具有動畫效果。當alpha為0時爬立,跟hidden為YES時效果一樣钾唬,但是alpha主要用于實現(xiàn)隱藏的動畫效果,在動畫塊中將hidden設置為YES沒有動畫效果侠驯。


1

2

3

4

5

6

7

8

UIView *view=[[UIView alloc]initWithFrame:CGRectMake(30, 100, CGRectGetWidth(self.view.bounds)-60, 150)];

[view setBackgroundColor:[UIColor redColor]];

[view setAlpha:0.5];

[self.view addSubview:view];


UIView *childView=[[UIView alloc]initWithFrame:CGRectMake(20, 30, 100, 80)];

[childView setBackgroundColor:[UIColor blueColor]];

[view addSubview:childView];


設置backgroundColor的alpha值只影響當前UIView的背景抡秆,并不會影響其所有subview。Clear Color就是backgroundColor的alpha為1.0吟策。alpha值會影響backgroundColor最終的alpha,假設UIView的alpha為0.8儒士,backgroundColor的alpha為0.5,那么backgroundColor最終的alpha為0.4(0.8*0.5)檩坚。

Hidden(隱藏)

Hidden表示UIView是否隱藏着撩,Hidden設置為YES表示當前UIView的所有subview也會被隱藏诅福,忽略subview的hidden屬性。Hidden只要設置為YES睹酌,所有的subview都會隱藏权谁。UIView隱藏之后也會從當前的響應者事件中移除。

Opaque

opaque也是表示當前的UIView的不透明度憋沿,設置是否之后對于UIView的顯示并沒有什么影響,官方文檔的意思簡單點說就是opaque默認為YES旺芽,如果alpha小于1,那么應該設置opaque設置為NO辐啄,但是如果alpha為1采章,opaque設置為NO,產(chǎn)生的后果是不可預料的~


1

2

3

4

5

This property provides a hint to the drawing system?as?to how it should treat the view. If?set?to YES, the drawing system treats the view?as?fully opaque, which allows the drawing system to optimize some drawing operations and improve performance. If?set?to NO, the drawing system composites the view normally with other content. The?default?value of?this?property?is?YES.


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.


You only need to?set?a value?for?the opaque property?for?subclasses of UIView that draw their own content?using?the drawRect: method. The opaque property has no effect?for?system provided classes such?as?UIButton, UILabel, UITableViewCell, etc.


如果了解opaque壶辜,需要點屏幕繪制的知識悯舟,屏幕上的每個像素點都是通過RGBA值(Red、Green砸民、Blue三原色再配上Alpha透明度)表示的抵怎,當紋理(UIView在繪圖系統(tǒng)中對應的表示項)出現(xiàn)重疊時,GPU會按照Result = Source + Destination * (1 - SourceAlpha)公式計算重疊部分的像素岭参。

Result是結(jié)果RGB值反惕,Source為處在重疊頂部紋理的RGB值,Destination為處在重疊底部紋理的RGB值演侯。

當SourceAlpha為1時姿染,繪圖系統(tǒng)認為下面的顏色全部被遮蓋住了,Result=Source秒际,如果Source的Alpha不為0悬赏,上下層顏色就會進行合成,所以opaque默認設置YES娄徊,提升繪制性能闽颇,如果開發(fā)中UIView是不透明的,opaque設置為YES寄锐, 如果opaque設置NO进萄,那么Alpha應該小于1.

參考資料:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/index.html#//apple_ref/occ/instp/UIView/opaque

作者:FlyElephant

出處:http://www.cnblogs.com/xiaofeixiang

說明:博客經(jīng)個人辛苦努力所得,如有轉(zhuǎn)載會特別申明锐峭,博客不求技驚四座,但求與有緣人分享個人學習知識,生活學習提高之用可婶,博客所有權(quán)歸本人和博客園所有沿癞,如有轉(zhuǎn)載請在顯著位置給出博文鏈接和作者姓名,否則本人將付諸法律矛渴。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末椎扬,一起剝皮案震驚了整個濱河市惫搏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蚕涤,老刑警劉巖筐赔,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異揖铜,居然都是意外死亡茴丰,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門天吓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贿肩,“玉大人,你說我怎么就攤上這事龄寞√妫” “怎么了?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵物邑,是天一觀的道長溜哮。 經(jīng)常有香客問我,道長色解,這世上最難降的妖魔是什么茂嗓? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮冒签,結(jié)果婚禮上在抛,老公的妹妹穿的比我還像新娘。我一直安慰自己萧恕,他們只是感情好刚梭,可當我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著票唆,像睡著了一般朴读。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上走趋,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天衅金,我揣著相機與錄音,去河邊找鬼簿煌。 笑死氮唯,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的姨伟。 我是一名探鬼主播惩琉,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼夺荒!你這毒婦竟也來了瞒渠?” 一聲冷哼從身側(cè)響起良蒸,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎伍玖,沒想到半個月后嫩痰,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡窍箍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年串纺,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片仔燕。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡造垛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出晰搀,到底是詐尸還是另有隱情五辽,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布外恕,位于F島的核電站杆逗,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏鳞疲。R本人自食惡果不足惜罪郊,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望尚洽。 院中可真熱鬧悔橄,春花似錦、人聲如沸腺毫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽潮酒。三九已至睛挚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間急黎,已是汗流浹背扎狱。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留勃教,地道東北人淤击。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像故源,于是被迫代替她去往敵國和親遭贸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容