【问题标题】:Fade out UIView?淡出 UIView?
【发布时间】:2011-02-03 23:34:50
【问题描述】:

我在这里有一个 UIView,我想部分淡化它的底部。基本上我希望 alpha 值在我们去的 UIView 上进一步降低。所以 UIView 的顶部是完全可见的,而底部的 alpha 值为 0。

有人对如何做到这一点有任何建议吗?

【问题讨论】:

    标签: objective-c ios uiview uikit fade


    【解决方案1】:

    CALayer 有一个名为mask 的属性,专为实现这种效果而设计。如果将另一个 CALayer 分配给遮罩(没有超层的),则在合成第一个 CALayer 时会使用第二个 CALayer 的 Alpha 通道。

    不过要小心,因为使用 mask 属性会严重影响性能。

    【讨论】:

    • 那么如何使用遮罩来改变CALayer底部的alpha值呢?
    • 在 Alpha 通道上创建包含渐变的图像。将此图像指定为全新图层的内容属性,其大小与您要淡出的图层相同。然后将这个新图层指定为原始图层的蒙版。
    • 这会淡出这个视图背后的任何东西,不是吗?基本上,我在这里尝试创建的是 UIImageView 下方的反射。我已经有了反射,但我希望它越走越远。而且图像通常是透明的 png,因此添加渐变意味着背景也会逐渐消失。
    • 向图层添加蒙版只会影响该图层及其子图层。它不会影响它下面的任何东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 2012-08-04
    • 2011-04-10
    • 2021-05-18
    相关资源
    最近更新 更多