自己能夠做到的實(shí)現(xiàn)這樣的效果赴涵,現(xiàn)在大概有五種方法辞色。
看到要實(shí)現(xiàn)這樣的效果愉镰,我們每個(gè)人最先想到的應(yīng)該是調(diào)整那個(gè)視圖的alpha值(0~1)米罚。
但是如果你的這個(gè)視圖上還有個(gè)要正常顯示的子控件的話,你這樣寫是達(dá)不到效果的丈探,這樣寫導(dǎo)致录择,只要在這個(gè)視圖上的控件都會(huì)顯示半透明,要想達(dá)到背景半透明而子控件不透明最簡(jiǎn)單辦法是:
一.用一張半透明的圖片作為背景碗降。
這樣的話就需要你們的UI給你做一個(gè)你所需要的圖片隘竭,(在項(xiàng)目中能不用圖片的地方盡量不要用圖片)
二 .使用colorWithWhite:alpha 方法
View.backgroundColor = [UIcolor colorWithWhite:0.2f alpha: 0.5];
這個(gè)方法是我之前做項(xiàng)目最常用的方法,0.2f 表示灰度讼渊,alpha就是你想要調(diào)的透明度动看,這個(gè)方法只能設(shè)置黑與白之間的半透明。
三.使用colorWithRed:green:blue:alpha:方法
這個(gè)方法可以任意設(shè)置我們想要的半透明色彩爪幻,以前只是給視圖設(shè)置想要的色彩菱皆,以此偶然的機(jī)會(huì),竟然發(fā)現(xiàn)它可以做任何我們想要的半透明背景而子控件不透明(以前沒(méi)發(fā)現(xiàn)挨稿,小失誤)
View.backgroundColor = [UIcolor colorWithRed:0.2f green:0.4f blue:0.5f alpha: 0.5];
0.2f 0.4f 0.5f 為相應(yīng)的色度仇轻,如果你們的UI給你們的顏色為242 122 145 時(shí),我們可以這樣寫:
View.backgroundColor = [UIcolor colorWithRed:242/255 f green:122/ 255 f blue:145 / 255 f alpha: 0.5];
同樣達(dá)到你們想要的效果奶甘!
四.在xib或者storyBoard里面對(duì)背景進(jìn)行設(shè)置
如圖:
通過(guò)對(duì)背景顏色設(shè)置圖中的Opacity滑塊調(diào)整透明度篷店,同樣可以達(dá)到設(shè)置背景半透明而子控件不透明的目的。
五.使用colorWithAlphaComponent:方法
和前面說(shuō)的幾個(gè)設(shè)置背景色的方法不太一樣的是,這是一個(gè)實(shí)例方法,一個(gè)UIColor的實(shí)例調(diào)用此方法后會(huì)返回一個(gè)帶透明度的UIColor.使用方法如下:
UIColor *color = [UIColor blackColor]; View.backgroundColor = [color colorWithAlphaComponent:0.5];
這個(gè)方法也可以實(shí)現(xiàn)我們想要的效果臭家。
今后還有什么好的方法我會(huì)持續(xù)更新疲陕!