UILabel在50%的不透明度背景下(UIView?)100%不透明

所以现在我有一个UIViewUILabel中。 我希望背景具有不透明度<1.0,标签具有1.0的不透明度。 但是,由于alphas沿着视图层次传播,所以标签最终的透明度也是<1.0。

有没有办法做我想要的,而不是让UILabel成为另一个视图的子视图?

只要设置背景颜色是半透明的:

 view.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.5f]; 

或者,在Swift中:

 view.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.5) 

或者,斯威夫特3:

 view.backgroundColor = UIColor.black.withAlphaComponent(0.5) 

请注意,在这种特殊情况下, UIColor(white: 0, alpha: 0.5)更简洁,但colorWithAlphaComponent一般工作。

除了在代码中可用,你也可以很容易地从iB做到这一点:

  1. 在故事板中,select您想要编辑的视图;
  2. 从右侧面板中,确保“属性”检查器已打开;
  3. 点击“背景”下拉框的右侧,select“其他…”; 它会打开一个颜色select器对话框;
  4. 更改底部的“不透明度”以设置背景色不透明度。

你可以用半透明的颜色设置UIView的背景颜色,或者使图像本身半透明。 这种方式是视图的属性是透明的,而不是视图本身。

你可以使用这个:

 self.view.layer.opacity=0.5