2017-10-10 97 views
-2

在swift中更改子視圖的alpha而不是父視圖。我想這在swift中更改子視圖的alpha而不是父視圖

  for v in view.subviews { 
        let view = v 
        view.layer.cornerRadius = 20 
        view.backgroundColor = UIColor.black 
        view.alpha = 0.8 
        } 

enter image description here

+0

你的問題是什麼?你發佈的代碼到底是什麼問題? – rmaddy

+0

我想更改子視圖的Alpha而不是父視圖。查看視圖層次 –

+0

好的,這就是你想要做的。再次,你的問題是什麼?你發佈的代碼有什麼問題?你發佈的代碼改變了所有子視圖的'alpha',而不是'view'本身。 – rmaddy

回答

0

我假設每個視圖的子視圖也有子視圖,否則就像@rmaddy,我不確定問題是什麼。要深入到第二層子視圖,請使用嵌套循環:

for v in view.subviews { 
    v.subviews.forEach({ 
     $0.alpha = 0.8 
     //etc 
    }) 
} 

希望有所幫助。

0

如果我明白你的問題,你想你的四子視圖設置透明度,但不影響其子視圖(子視圖的子視圖)。

通過設置視圖alpha屬性,所有的子視圖都會受到影響,並且透明度將被應用於所有的(遞歸的)。如果您不想要這種行爲,請在backgroundColor屬性上設置透明度的某種顏色並保留alpha屬性值1。否則,如果您只是不想隱藏圖像視圖,請在故事板上手動設置alpha,而不是此循環,或創建一個imageView插座並在循環後將其alpha設置爲1。

相關問題