前言
沒(méi)啥好說(shuō)的,安利大家一部局<霹靂布袋戲>,臺(tái)灣的,是操偶師加配型而成非常好看,哈哈,是黃大大(俗稱八音童子),一個(gè)人可以發(fā)出8種以上音調(diào).里面經(jīng)常用的一句:朋友,相殺嗎?
朋友,相殺嗎.jpg
一、alpha
液晶顯示器是由一個(gè)個(gè)的像素點(diǎn)組成的,每個(gè)像素點(diǎn)都可以顯示一個(gè)由RGBA顏色空間組成的一種色值。其中的A就表示透明度alpha,UIView中alpha是一個(gè)浮點(diǎn)值,取值范圍0~1.0,表示從完全透明到完全不透明。
1、alpha會(huì)影響自己的透明度,同時(shí)也會(huì)影響subView的透明度。
2、alpha設(shè)為空之后,UIView不會(huì)從響應(yīng)者鏈中移除,仍然可以收到event。
3、更改alpha,默認(rèn)是有動(dòng)畫(huà)效果的,這是因?yàn)閳D層在Cocoa中是由Core Animation中CALayer表示的,該動(dòng)畫(huà)效果是CALayer的隱含動(dòng)畫(huà)。當(dāng)然也有辦法禁用此動(dòng)畫(huà)效果。
二、hidden
該屬性為BOOL值,用來(lái)表示UIView是否隱藏,默認(rèn)值是NO。
當(dāng)值設(shè)為YES時(shí):
1、當(dāng)前的UIView和subview都會(huì)被隱藏,而不管subview的hidden值為多少。
2、當(dāng)前UIView會(huì)從響應(yīng)者鏈中移除,而響應(yīng)者鏈中的下一個(gè)會(huì)成為第一響應(yīng)者
三、alpha - hidden 比較
1、對(duì)subView的影響: alpha會(huì)影響subView透明度,hidden也會(huì)影響subView
2、隱藏UIView: alpha設(shè)置為0可以隱藏UIView,hidden設(shè)置為YES也可以隱藏UIVIew,效果是一樣的,使用hidden性能較高。
四、opaque
該屬性為BOOL值,UIView的默認(rèn)值是YES,但UIButton等子類的默認(rèn)值都是NO。opaque表示當(dāng)前UIView是否不透明,不過(guò)搞笑的是事實(shí)上它卻決定不了當(dāng)前UIView是不是不透明,比如你將opaque設(shè)為NO,該UIView照樣是可見(jiàn)的。其作用在于:給繪圖系統(tǒng)提供一個(gè)性能優(yōu)化開(kāi)關(guān)。如果該值為YES,那么繪圖在繪制該視圖的時(shí)候把整個(gè)視圖當(dāng)做不透明對(duì)待。這樣,繪圖系統(tǒng)在執(zhí)行繪圖過(guò)程中會(huì)優(yōu)化一些操作并提供系統(tǒng)性能;如果是設(shè)置為NO,繪圖系統(tǒng)將其和其他內(nèi)容平等對(duì)待,不去做優(yōu)化操作。為了性能方面的考量,默認(rèn)被置為YES(意味著優(yōu)化)。
1、UIView當(dāng)有背景顏色時(shí):并且背景顏色有透明度(透明度不為1時(shí)),將opaque設(shè)置為YES性能較高。
2、UIVIew有背景顏色時(shí):并且背景顏色的透明度為1,opaque的值不影響性能。
3、UIVIew沒(méi)有背景顏色時(shí):opaque的值不影響性能。
五、opacity - CALayer的屬性
CALayer中opacity是一個(gè)浮點(diǎn)值,取值范圍0~1.0,表示從完全透明到完全不透明。
1、opacity會(huì)影響自己的透明度,同時(shí)也會(huì)影響subLayer的透明度。
2、opacity設(shè)為空之后,CALayer不會(huì)從響應(yīng)者鏈中移除,仍然可以收到event。
六、如何設(shè)置UIView透明,subView不透明
1、使用一張半透明的圖片做背景。
這個(gè)方法可以達(dá)到要求,但是工程中應(yīng)該盡量少加入資源,能不用圖片的盡量不用圖片。
2、使用colorWithWhite:alpha:方法
view.backgroundColor = [UIColor colorWithWhite:0.f alpha:0.5];
這也是使用比較多的方法,white后面的參數(shù)表示灰度,從0-1之間表示從黑到白的變化,alpha就是想要調(diào)整的透明度。
3、使用colorWithRed:green:blue:alpha:方法
設(shè)置alpha就是想要調(diào)整的透明度。
4、在xib或者storyBoard里面對(duì)背景進(jìn)行設(shè)置
通過(guò)對(duì)背景顏色設(shè)置圖中的opacity滑塊調(diào)整透明度。
5、使用colorWithAlphaComponent:方法
這是一個(gè)實(shí)例方法,一個(gè)UIColor的實(shí)例調(diào)用此方法后會(huì)返回一個(gè)帶透明度的UIColor.使用方法如下:
UIColor *color = [UIColor blackColor];
bgView.backgroundColor = [color colorWithAlphaComponent:0.5];