背景颜色的 alpha 在 iOS 中不起作用
alpha for background color not working in iOS
您知道为什么 alpha 参数在我的视图中不起作用吗?
self.view.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.4)
请同时查看此视频
谢谢
这并不奇怪,它的行为完全正常。虽然 UIColor 的很多方法都是 class 方法,但是实例方法还是有一些,这就是其中之一。来自 UIColor documentation .
colorWithAlphaComponent:
Creates and returns a color object that has the same color space and
component values as the receiver, but has the specified alpha
component. So, colorWithAlphaComponent: just changes the alpha value
of its receiver. Example:
let black = UIColor.blackColor() // 1.0 alpha
self.view.backgroundColor = black.colorWithAlphaComponent(0.5) // 0.5 alpha
你展示的是 ViewController 所以它不会工作你必须添加 UIView of UIViewController 在另一个 ViewController 之后它会工作。
[[self view] addSubview:myViewController.view];
如果您正在使用故事板并使用 segue 显示视图控制器,则向您显示具有透明背景的视图控制器的 segue 的 presentation 属性应该全屏显示,如附件所示。
然后在您的视图控制器中使用此设置背景颜色:
self.view.backgroundColor = UIColor(white: 0, alpha: 0.4)
我在 iOS 12 上发现了一个与标题(但不是答案)相关的问题,其中 withAlphaComponent 不起作用。
- 在故事板中,将视图背景颜色设置为不透明的命名颜色
- 在代码中(例如 viewController 的 viewDidLoad),将此视图的背景颜色更改为相同的命名颜色但具有不同的 alpha(使用 withAlphaComponent)
预期结果:视图背景颜色是带有一些 alpha 的命名颜色。
实际结果:视图背景颜色是没有alpha的颜色。
如果故事板中设置的颜色是指定颜色以外的任何颜色,则不会出现此问题。它也不会发生在 iOS 14.1 上。
您知道为什么 alpha 参数在我的视图中不起作用吗?
self.view.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.4)
请同时查看此视频
谢谢
这并不奇怪,它的行为完全正常。虽然 UIColor 的很多方法都是 class 方法,但是实例方法还是有一些,这就是其中之一。来自 UIColor documentation .
colorWithAlphaComponent:
Creates and returns a color object that has the same color space and component values as the receiver, but has the specified alpha component. So, colorWithAlphaComponent: just changes the alpha value of its receiver. Example:
let black = UIColor.blackColor() // 1.0 alpha
self.view.backgroundColor = black.colorWithAlphaComponent(0.5) // 0.5 alpha
你展示的是 ViewController 所以它不会工作你必须添加 UIView of UIViewController 在另一个 ViewController 之后它会工作。
[[self view] addSubview:myViewController.view];
如果您正在使用故事板并使用 segue 显示视图控制器,则向您显示具有透明背景的视图控制器的 segue 的 presentation 属性应该全屏显示,如附件所示。
然后在您的视图控制器中使用此设置背景颜色:
self.view.backgroundColor = UIColor(white: 0, alpha: 0.4)
我在 iOS 12 上发现了一个与标题(但不是答案)相关的问题,其中 withAlphaComponent 不起作用。
- 在故事板中,将视图背景颜色设置为不透明的命名颜色
- 在代码中(例如 viewController 的 viewDidLoad),将此视图的背景颜色更改为相同的命名颜色但具有不同的 alpha(使用 withAlphaComponent)
预期结果:视图背景颜色是带有一些 alpha 的命名颜色。 实际结果:视图背景颜色是没有alpha的颜色。
如果故事板中设置的颜色是指定颜色以外的任何颜色,则不会出现此问题。它也不会发生在 iOS 14.1 上。