写这个:
view.backgroundColor = UIColor.white.withAlphaComponent(0.9)
相当于:
view.backgroundColor = UIColor.white
view.alpha = 0.9
如果没有,有什么区别?
答案 0 :(得分:2)
两者都不是等价的
案例1。仅向UIColor提供不透明度(透明度)
案例2。会给整个UIView提供不透明度(透明度)
使用第二个所有文本和其他对象(子视图)也将应用透明度。
您可以通过以下图片了解更多信息
colorView.backgroundColor = UIColor.white.withAlphaComponent(0.5) //First view Code
viewMain.alpha = 0.5 // second view code
两个视图都有蓝色背景颜色和黑色文本
那么应该使用哪一个: -
案例1。当您只想要UIColor的透明度时使用或者您希望在主视图后面显示视图,主要对象尽可能清晰。
案例2。当您想要透明地显示整个视图时使用。
答案 1 :(得分:1)
UIView中的内容受到更改UIView本身的alpha的影响。例如将它改为0.5将改变(好像,看起来像)UIView中的子视图到alpha 0.5。
更改背景颜色不会产生以下行为:子视图不受影响。
答案 2 :(得分:1)
简单解释
案例1:
viewMain.backgroundColor = UIColor.white.withAlphaComponent(0.9)
它会减少特定视图的alpha颜色,即viewMain
。
案例2:
viewMain.alpha = 0.5
它会降低视图的不透明度,如果viewMain有多个视图,那么所有视图alpha都将减少该数量。
示例:
让你的视图层次结构就像这样
viewMain
-> view1
-> view2
现在来自 Case1 ,ViewMain
的alpha只会减少。但在案例2 viewMain, view1, view2
的alpha值将会降低。
如果没有层次结构,则两者都相同。
如果您有视图层次结构,那么它会生效如下