56

所以现在我有一个里面UIView有一个UILabel。我希望背景的不透明度 < 1.0,标签的不透明度为 1.0。然而,由于 alpha 沿视图层次结构向下传播,因此标签最终的不透明度也 < 1.0。

有没有做我想做的事而不制作UILabel另一个视图的子视图?

4

4 回答 4

207

只需将背景颜色设置为半透明:

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通常可以使用。

于 2009-12-11T01:11:14.427 回答
13

除了可以在代码中使用之外,您还可以从 iB 轻松地做到这一点:

  1. 在情节提要中,选择要编辑的视图;
  2. 在右侧面板中,确保属性检查器已打开;
  3. 点击右侧“背景”下拉框,选择“其他...”;它将打开一个颜色选择器对话框;
  4. 更改底部的“不透明度”以设置背景颜色不透明度。
于 2014-06-25T04:50:39.167 回答
0

您可以UIView使用半透明颜色设置背景颜色或使图像本身半透明。这样,它是透明的视图属性,而不是视图本身。

于 2009-12-11T01:12:18.400 回答
-5

你可以使用这个:

self.view.layer.opacity=0.5
于 2010-12-01T09:20:32.097 回答