iOS開發-之UIView屬性hidden, opaque, alpha, opacity的區別

來源:互聯網
上載者:User

標籤:動畫效果   event   空間   oar   code   隱藏   區別   view   應該   

iOS開發-之UIView屬性hidden, opaque, alpha, opacity的區別一、alpha液晶顯示器是由一個個的像素點組成的,每個像素點都可以顯示一個由RGBA色彩空間組成的一種色值。其中的A就表示透明度alpha,UIView中alpha是一個浮點值,取值範圍0~1.0,表示從完全透明到完全不透明。1、alpha會影響自己的透明度,同時也會影響subView的透明度。2、alpha設為空白之後,UIView不會從響應者鏈中移除,仍然可以收到event。3、更改alpha,預設是有動畫效果的,這是因為圖層在Cocoa中是由Core Animation中CALayer表示的,該動畫效果是CALayer的隱含動畫。當然也有辦法禁用此動畫效果。  二、hidden該屬性為BOOL值,用來表示UIView是否隱藏,預設值是NO。當值設為YES時:1、當前的UIView和subview都會被隱藏,而不管subview的hidden值為多少。2、當前UIView會從響應者鏈中移除,而響應者鏈中的下一個會成為第一響應者 三、alpha - hidden 比較1、對subView的影響: alpha會影響subView透明度,hidden也會影響subView2、隱藏UIView: alpha設定為0可以隱藏UIView,hidden設定為YES也可以隱藏UIVIew,效果是一樣的,使用hidden效能較高。 四、opaque該屬性為BOOL值,UIView的預設值是YES,但UIButton等子類的預設值都是NO。opaque表示當前UIView是否不透明,不過搞笑的是事實上它卻決定不了當前UIView是不是不透明,比如你將opaque設為NO,該UIView照樣是可見的。其作用在於:給繪圖系統提供一個效能最佳化開關。如果該值為YES,那麼繪圖在繪製該視圖的時候把整個視圖當做不透明對待。這樣,繪圖系統在執行繪圖過程中會最佳化一些操作並提供系統效能;如果是設定為NO,繪圖系統將其和其他內容平等對待,不去做最佳化操作。為了效能方面的考量,預設被置為YES(意味著最佳化)。1、UIView當有背景顏色時:並且背景顏色有透明度(透明度不為1時),將opaque設定為YES效能較高。2、UIVIew有背景顏色時:並且背景顏色的透明度為1,opaque的值不影響效能。3、UIVIew沒有背景顏色時:opaque的值不影響效能。 五、opacity - CALayer的屬性CALayer中opacity是一個浮點值,取值範圍0~1.0,表示從完全透明到完全不透明。1、opacity會影響自己的透明度,同時也會影響subLayer的透明度。2、opacity設為空白之後,CALayer不會從響應者鏈中移除,仍然可以收到event。 六、如何設定UIView透明,subView不透明1、使用一張半透明的圖片做背景。這個方法可以達到要求,但是工程中應該盡量少加入資源,能不用圖片的盡量不用圖片。2、使用colorWithWhite:alpha:方法view.backgroundColor = [UIColor colorWithWhite:0.f alpha:0.5];這也是使用比較多的方法,white後面的參數表示灰階,從0-1之間表示從黑到白的變化,alpha就是想要調整的透明度。3、使用colorWithRed:green:blue:alpha:方法設定alpha就是想要調整的透明度。4、在xib或者storyBoard裡面對背景進行設定通過對背景顏色設定圖中的opacity滑塊調整透明度。5、使用colorWithAlphaComponent:方法這是一個執行個體方法,一個UIColor的執行個體調用此方法後會返回一個帶透明度的UIColor.使用方法如下:
UIColor *color = [UIColor blackColor];bgView.backgroundColor = [color colorWithAlphaComponent:0.5];

 









iOS開發-之UIView屬性hidden, opaque, alpha, opacity的區別

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.