UITableViewCell 上的阴影性能不佳

Shadow on UITableViewCell is giving bad performance

我正在使用自定义单元格创建 table 视图,它看起来像新闻提要 - 在灰色背景上有带圆角和阴影的矩形。

cellForRowAtIndexPath 方法正在调用时,我正在这样设置阴影:

cell.postCard.layer.cornerRadius = 3
cell.postCard.layer.shadowColor = UIColor.darkGrayColor().CGColor
cell.postCard.layer.shadowOffset = CGSizeMake(0,1)
cell.postCard.layer.shadowRadius = 3
cell.postCard.layer.shadowOpacity = 0.5
cell.layer.shadowPath = UIBezierPath(rect: cell.postCard.layer.bounds).CGPath

其中 postCard 是 UIView - 它是所有单元格上下文的容器。

我读到我需要添加 shadowPath 以获得良好的性能,但我认为它不起作用,因为当我缓慢移动时 table 视图会断断续续。可以是使用模拟器而不是真实设备的原因吗?

您正在设置单元格图层的阴影路径,同时修改 cell.postCard

的阴影设置
cell.postCard.layer.shadowOpacity = 0.5
cell.layer.shadowPath = UIBezierPath(rect: cell.postCard.layer.bounds).CGPath

这真的是您需要的吗?

此外,您应该为您的手机设置 'cell.clipsToBounds = false'。

尝试 read 关于 should​Rasterize 以及它如何处理 UI 元素的阴影和角半径。您可以通过操纵 should​Rasterize 值来提高性能。