在UITableView滚动时保持后备CAGradientLayer静态

时间:2010-07-19 17:18:20

标签: cocoa-touch iphone-sdk-3.0

我正在尝试使用CAGradientLayer作为UITableView的背景。一切都运行良好,直到滚动覆盖视图,然后预渲染背景向上滚动,并与原始数据屏幕一起向外滚动。

这是从 iOS 3.1.3 应用程序迁移的代码,使用UIImage作为背景,设备/分辨率独立 - 看起来很棒,运行良好,但嗅探设备类型并使用另一个png不是我想要发布的那种代码,更不用说维护了。

有关如何执行此操作的任何建议吗?

2 个答案:

答案 0 :(得分:1)

找到解决我试图解决的问题,由Matt Gallagher提供:

http://cocoawithlove.com/2009/08/adding-shadow-effects-to-uitableview.html

他的博客文章有很多不错的内容,包括隐藏相关单元格而不是整个表格(诺亚的回复中提到的性能问题)。

答案 1 :(得分:0)

您可能必须使表格视图透明,并将渐变图层添加到表格的超级视图中。请记住,您的滚动性能可能会很糟糕 - 核心动画必须为其显示的每个帧合成表的每个子视图。您可以通过将单元格的图层设置为光栅化自身来轻微缓解这种情况,如here所述,但是不管怎样,事情都会变得非常不稳定。