所以我现在有一个UIView
,其中包含UILabel
。我希望背景具有不透明度< 1.0和标签的不透明度为1.0。然而,由于alphas沿着视图层次结构向下传播,因此标签最终具有不透明度< 1.0也是。
无论如何,如果不将UILabel
作为另一个视图的子视图,我可以做我想做的事情吗?
答案 0 :(得分:205)
只需将背景颜色设置为半透明:
view.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.5f];
或者,在Swift中:
view.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.5)
或者,Swift 3:
view.backgroundColor = UIColor.black.withAlphaComponent(0.5)
请注意,在这种特殊情况下,UIColor(white: 0, alpha: 0.5)
更简洁,但colorWithAlphaComponent
通常会有效。
答案 1 :(得分:13)
除了代码可用外,您还可以从iB轻松完成此操作:
答案 2 :(得分:0)
您可以使用半透明颜色设置UIView
的背景颜色,或使图像本身为半透明。这样,视图的属性是透明的,而不是视图本身。
答案 3 :(得分:-5)
您可以使用:
self.view.layer.opacity=0.5