【发布时间】:2018-03-24 07:41:34
【问题描述】:
正在写这个:
view.backgroundColor = UIColor.white.withAlphaComponent(0.9)
等价于:
view.backgroundColor = UIColor.white
view.alpha = 0.9
如果不是,有什么区别?
【问题讨论】:
正在写这个:
view.backgroundColor = UIColor.white.withAlphaComponent(0.9)
等价于:
view.backgroundColor = UIColor.white
view.alpha = 0.9
如果不是,有什么区别?
【问题讨论】:
简单解释
案例 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 值会降低。
如果你没有层次结构,那么两者都是一样的。
如果你有视图层次结构,那么它会产生如下效果
【讨论】:
viewMain(相同颜色)提供相同的外观?
没有两者不等价
案例 1. 将只赋予 UIColor 不透明度(透明度)
案例 2. 将赋予整个 UIView 不透明度(透明度)
使用第二个所有文本和其他对象(子视图)也将应用透明度。
您可以通过下图了解更多
colorView.backgroundColor = UIColor.white.withAlphaComponent(0.5) //First view Code
viewMain.alpha = 0.5 // second view code
两个视图都有蓝色背景和黑色文本
那么什么时候应该使用:-
案例 1。 当您只需要 UIColor 的透明度时使用,或者您希望在主视图后面显示视图,并且主对象与实际一样清晰。
案例 2。 当您想要以透明方式显示整个视图时使用。
【讨论】:
UIView 中的内容会受到改变 UIView 本身 alpha 的影响。例如将其更改为 0.5 也会将 UIView 中的子视图更改(看起来像)为 alpha 0.5。
更改背景颜色不会有行为:子视图不受影响。
【讨论】:
view(相同颜色)提供相同的外观?