2011-09-27 108 views
0

我基本上希望我的UITableView实例中每个图层的不透明度在前10个像素处“淡出”。不透明度渐变适用于CALayer?

有什么办法淡化CALayer(或更一般的UIView)的不透明度?它与使用CAGradientLayer添加阴影的效果相似,但是不会将表视图的其他图层与另一图层一起覆盖,而是会根据渐变对它们应用滤镜以使其透明。

回答

2

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

+1

完美 - 谢谢!不幸的是,我的背景不是纯色,而是动态图像。我一次只能在屏幕上观看一个视图,但我会在发货之前在乐器中查看它。 我不得不创建一个CALayer来保存淡入淡出的不透明CAGradient图层和另一个普通CALayer以使其余视图可见,但它看起来太棒了! 再次感谢! –

+1

@AshFurrow:很高兴听到它的工作。 “面具”相对昂贵,但是当你需要它时,它往往会完成这项工作。如果您遇到性能问题,而且您没有制作任何动画,则可能需要查看“shouldRasterize”标志。这可以帮助静态内容在某些情况下表现更好。但是当然,如​​果你开始制作动画,那么效果不会很好。 –