在swift中更改子视图的alpha而不是父视图
问题描述:
在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