Objective c 应用于CALayer的不透明度渐变?

Objective c 应用于CALayer的不透明度渐变?,objective-c,ios,uikit,calayer,Objective C,Ios,Uikit,Calayer,我基本上希望UITableView实例中每一层的不透明度在前10个像素左右“淡出” 有没有办法使CALayer(或者更一般地说,UIView)的不透明度淡出?这在效果上类似于使用CAGradientLayer添加阴影,但它不会用另一层覆盖表视图的其他层,而是对它们应用过滤器,使它们根据渐变透明。是的,通过使用CALayer的mask属性,但效率相当低。通常,这种效果是通过在视图顶部叠加从透明到背景色的渐变来实现的(但这只有在您知道背景是什么的情况下才有效)。完美-谢谢!不幸的是,我的背景不是纯色

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


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

是的,通过使用
CALayer
mask
属性,但效率相当低。通常,这种效果是通过在视图顶部叠加从透明到背景色的渐变来实现的(但这只有在您知道背景是什么的情况下才有效)。

完美-谢谢!不幸的是,我的背景不是纯色,而是动态图像。我一次只能在屏幕上查看一个视图,但我会在发布之前在仪器中检查它。我必须创建一个CALayer来保存渐变的不透明度cagradent层,并创建另一个普通CALayer来保存视图的其余部分,但是它看起来很棒!再次感谢@阿什弗罗:很高兴听到它起作用了
mask
相对昂贵,但当您需要它时,它往往可以完成这项工作。如果您遇到性能问题,并且没有设置任何动画,您可能需要查看
shouldRasterize
标志。这有助于静态内容在某些情况下表现得更好。但当然,如果你在制作动画,那就不好了。