iOS 關於View透明屬性乾貨

2021-08-22 13:19:50 字數 2051 閱讀 2676

一、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也會影響subview

2、隱藏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不透明
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 關於View的一切

ios 關於view的一切 1 view view物件是uiview類的例項,用來展示視覺化的內容。檢視物件定義了乙個矩形區域,並且負責該區域內容的繪製 事件的處理及子檢視的布局。每個view物件都對應乙個layer物件,layer物件是calayer的例項,該物件管理著檢視的後台儲存 處理與檢視相...

iOS中調整view層級位置的兩個屬性

控制項的層級關係和你加入到父檢視的順序有關,也就是先addsubview至父檢視的,層級越低,會被後加入的遮蓋。可以通過以下函式改變子檢視的層級 將乙個uiview顯示在最前面 void bringsubviewtofront uiview view 將檢視顯示在下面 void sendsubvie...

iOS開發 關於某乙個View的強制橫屏

因為螢幕旋轉感覺比較麻煩,所以,極少做旋轉的情況。這次,嘗試做做旋轉,總體感覺還行,比單一橫屏要多一些事情要處理,但是,寫 的過程中發現 橫屏與豎屏並不一定要完全保持所有的元素一樣,比如,有些元素並不完全適合豎屏,或者說會帶來很大的工作量,就可以簡化。本著橫屏與豎屏分別處理的原則,就好辦多了。畢竟,...