更改子视图的alpha而不是swift中的父视图

时间:2017-10-10 20:06:40

标签: swift

更改子视图的alpha而不是swift中的父视图。我试过这个

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

enter image description here

2 个答案:

答案 0 :(得分:2)

如果我理解了您的问题,您希望设置四个子视图的透明度,但不会影响其子视图(子视图的子视图)。

通过设置视图alpha属性,所有子视图都将受到影响,透明度将应用于所有(递归)。如果您不想这样做,请在backgroundColor属性上设置一些透明度的颜色,并保留alpha属性值1

否则,如果您不想隐藏图像视图,请在故事板上手动设置Alpha而不是此循环,或者创建一个imageView插座并在循环后将其alpha设置为1.

答案 1 :(得分:0)

我假设每个视图的子视图也有子视图,否则,就像@rmaddy一样,我不确定问题是什么。要深入查看第二层子视图,请使用嵌套循环:

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

希望有所帮助。