添加 alpha 以查看 VS 添加 alpha 到 UIColor

Add alpha to view VS Add alpha to UIColor

正在写这个:

view.backgroundColor = UIColor.white.withAlphaComponent(0.9)

相当于:

view.backgroundColor = UIColor.white
view.alpha = 0.9

如果不是,有什么区别?

UIView 中的内容会受到更改 UIView 本身的 alpha 的影响。例如将它更改为 0.5 也会将 UIView 中的子视图更改(好吧,看起来像)到 alpha 0.5。

更改背景颜色不会有此行为:子视图不受影响。

两者不等价

情况 1. 只给 UIColor 不透明度(透明度)

情况 2. 将赋予整个 UIView 不透明度(透明度)

使用第二个所有文本和其他对象(子视图)也将应用透明度。

你可以通过下图了解更多

colorView.backgroundColor = UIColor.white.withAlphaComponent(0.5) //First view Code

viewMain.alpha = 0.5 // second view code

两个视图都有蓝色背景颜色和黑色文本

那么什么时候应该使用哪个:-

案例 1. 当您只需要 UIColor 的透明度或者您想要显示主视图后面的视图时,主要对象尽可能清晰。

情况 2. 当您想要以透明方式显示整个视图时使用。

简单说明

案例一:

viewMain.backgroundColor = UIColor.white.withAlphaComponent(0.9)

它将减少特定视图的 alpha 颜色,即此处 viewMain

案例二:

viewMain.alpha = 0.5

它会降低视图的不透明度,如果 viewMain 有多个视图,那么所有视图的 alpha 都会降低该数量。

示例:

假设你的视图层次结构是这样的

viewMain
     -> view1
         -> view2

现在从Case1开始,ViewMain的alpha只会减少。但是在案例 2viewMain, view1, view2 的 alpha 会减少。

如果你没有层次结构,那么两者都是一样的。

如果你有视图层级,那么效果如下