【问题标题】:Opacity Gradient Applied to CALayer?不透明度渐变应用于CALayer?
【发布时间】:2011-11-26 10:08:50
【问题描述】:

我基本上希望 UITableView 实例中每一层的不透明度在前 10 个左右的像素处“淡出”。

有没有办法淡出 CALayer(或更一般地说,UIView)的不透明度?它在效果上类似于使用 CAGradientLayer 添加阴影,但不是用另一个覆盖 table view 的其他层,而是对它们应用过滤器以根据渐变使它们透明。

【问题讨论】:

    标签: objective-c ios uikit calayer


    【解决方案1】:

    是的,通过使用CALayermask 属性,但效率相当低。通常,这种效果是通过在视图顶部覆盖从透明到背景颜色的渐变来完成的(但这只有在您知道背景是什么时才有效)。

    【讨论】:

    • 完美 - 谢谢!不幸的是,我的背景不是纯色而是动态图像。我一次只为屏幕上的一个视图执行此操作,但我会在发货前在 Instruments 中检查它。我必须创建一个 CALayer 来保存一个不透明的 CAGradient 层用于淡入淡出和另一个普通的 CALayer 以使视图的其余部分可见,但它看起来很棒!再次感谢!
    • @AshFurrow:很高兴听到它奏效了。 mask 相对昂贵,但是当您需要它时,它往往可以胜任。如果您遇到性能问题并且没有为任何内容设置动画,您可能需要查看 shouldRasterize 标志。这可以帮助静态内容在某些情况下表现得更好。但是,当然,如果您要制作动画,那就不好了。
    猜你喜欢
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    • 2015-09-20
    • 1970-01-01
    • 2011-01-18
    • 2011-02-07
    • 1970-01-01
    相关资源
    最近更新 更多