【问题标题】:Add alpha to view VS Add alpha to UIColor添加 alpha 到视图 VS 添加 alpha 到 UIColor
【发布时间】:2018-03-24 07:41:34
【问题描述】:

正在写这个:

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

等价于:

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

如果不是,有什么区别?

【问题讨论】:

    标签: ios swift alpha uicolor


    【解决方案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 值会降低。

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

    如果你有视图层次结构,那么它会产生如下效果

    【讨论】:

    • 让我们忘记子视图,它是否给viewMain(相同颜色)提供相同的外观?
    • @iOSGeek 检查答案中的输出结果。如果仍有疑问,请询问。
    【解决方案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。 当您想要以透明方式显示整个视图时使用。

    【讨论】:

    • 但这是否会为视图提供相同的结果(颜色)?
    • @iOSGeek 不,你可以看到 UIColor 的透明度与其他的不同
    【解决方案3】:

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

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

    【讨论】:

    • 让我们忘记子视图,它是否给view(相同颜色)提供相同的外观?
    猜你喜欢
    • 2018-06-23
    • 2021-04-25
    • 1970-01-01
    • 2023-04-07
    • 2013-12-23
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    • 2016-09-16
    相关资源
    最近更新 更多