背景颜色的alpha不适用于iOS

时间:2015-03-05 09:50:38

标签: ios iphone xcode swift uikit

你知道为什么alpha参数对我的视图不起作用吗?

  self.view.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.4)

另请查看此视频

Video

谢谢

4 个答案:

答案 0 :(得分:4)

如果您使用故事板并使用segue显示视图控制器,则显示带有透明背景的视图控制器的segue的显示属性应该全屏显示,如附件中所示。

enter image description here

然后在视图控制器中使用以下方法设置背景颜色:

self.view.backgroundColor = UIColor(white: 0, alpha: 0.4)

答案 1 :(得分:2)

它并不奇怪,它的行为完全应该如此。尽管UIColor的许多方法都是类方法,但仍然有一些实例方法,这就是其中之一。来自UIColor documentation

<强> colorWithAlphaComponent:

  

创建并返回具有相同颜色空间的颜色对象   组件值作为接收器,但具有指定的alpha   零件。所以,colorWithAlphaComponent:只是更改alpha值   它的接收器。例如:

let black = UIColor.blackColor() // 1.0 alpha
self.view.backgroundColor = black.colorWithAlphaComponent(0.5) // 0.5 alpha

答案 2 :(得分:1)

您正在展示 ViewController ,因此您不得不在其他ViewController上添加 UIViewController UIView 之后它会起作用。

   [[self view] addSubview:myViewController.view];

答案 3 :(得分:0)

我在iOS 12上发现了一个问题,该问题与withAlphaComponent不起作用的标题有关(但与答案无关)。

  1. 在情节提要中,将视图背景色设置为不透明的名为colour
  2. 在代码中(例如,viewController的viewDidLoad),将该视图的背景色更改为相同的命名颜色,但使用不同的Alpha(使用AlphaComponent)

预期结果:视图背景色是具有某些alpha值的命名背景色。 实际结果:视图背景颜色是他命名为不带alpha的颜色。

如果故事板中设置的颜色是除指定颜色以外的任何颜色,则不会发生此问题。在iOS 14.1上也不会发生。