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 关于 shouldRasterize
以及它如何处理 UI 元素的阴影和角半径。您可以通过操纵 shouldRasterize
值来提高性能。
我正在使用自定义单元格创建 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 关于 shouldRasterize
以及它如何处理 UI 元素的阴影和角半径。您可以通过操纵 shouldRasterize
值来提高性能。