在swift中更改子視圖的alpha而不是父視圖。我想這在swift中更改子視圖的alpha而不是父視圖
for v in view.subviews {
let view = v
view.layer.cornerRadius = 20
view.backgroundColor = UIColor.black
view.alpha = 0.8
}
在swift中更改子視圖的alpha而不是父視圖。我想這在swift中更改子視圖的alpha而不是父視圖
for v in view.subviews {
let view = v
view.layer.cornerRadius = 20
view.backgroundColor = UIColor.black
view.alpha = 0.8
}
我假設每個視圖的子視圖也有子視圖,否則就像@rmaddy,我不確定問題是什麼。要深入到第二層子視圖,請使用嵌套循環:
for v in view.subviews {
v.subviews.forEach({
$0.alpha = 0.8
//etc
})
}
希望有所幫助。
如果我明白你的問題,你想你的四子視圖設置透明度,但不影響其子視圖(子視圖的子視圖)。
通過設置視圖alpha
屬性,所有的子視圖都會受到影響,並且透明度將被應用於所有的(遞歸的)。如果您不想要這種行爲,請在backgroundColor
屬性上設置透明度的某種顏色並保留alpha
屬性值1
。否則,如果您只是不想隱藏圖像視圖,請在故事板上手動設置alpha,而不是此循環,或創建一個imageView插座並在循環後將其alpha設置爲1。
你的問題是什麼?你發佈的代碼到底是什麼問題? – rmaddy
我想更改子視圖的Alpha而不是父視圖。查看視圖層次 –
好的,這就是你想要做的。再次,你的問題是什麼?你發佈的代碼有什麼問題?你發佈的代碼改變了所有子視圖的'alpha',而不是'view'本身。 – rmaddy