UICollectionViewCell 阴影导致小滞后

Posted

技术标签:

【中文标题】UICollectionViewCell 阴影导致小滞后【英文标题】:UICollectionViewCell shadow causes small lag 【发布时间】:2015-12-21 22:54:33 【问题描述】:

在我的 UICollectionView 中向下滚动时,它会滞后,这是由以下原因引起的:

imageCell?.backgroundColor = UIColor.whiteColor()
imageCell?.layer.masksToBounds = false
imageCell?.layer.shadowOpacity = 0.5
imageCell?.layer.shadowRadius = 5.0
imageCell?.layer.shadowOffset = CGSizeZero
imageCell?.layer.shadowColor = UIColor.grayColor().CGColor

imageCell 是单元格名称:

let imageCell = collectionView.dequeueReusableCellWithReuseIdentifier("imageCell", forIndexPath: indexPath) as? CollectionViewCell

有什么建议吗?

【问题讨论】:

您是在 Interface Builder 中创建了一个标识符为 imageCell 的单元格,还是全部在代码中完成? @Jay 单元格是在 Interface Builder 中创建的,是的。 您找到解决方案了吗?我遇到了类似的问题 @JayVDiyk 我删除了阴影。没有阴影看起来也更专业。 【参考方案1】:

使用阴影时,如果您知道形状,最好指定shadowPath

imageCell?.layer.shadowPath = UIBezierPath(rect: imageCell?.frame ?? CGRectZero).CGPath

Apple mentions

指定显式路径通常会提高渲染性能。

【讨论】:

【参考方案2】:

我在使用太大的图像时遇到了同样的问题。然后我转换为 .png 并使它们更小 - 这很有帮助。 (不确定您是否使用任何图像)。

但真正发挥作用的是光栅化

cell.layer.shouldRasterize

【讨论】:

以上是关于UICollectionViewCell 阴影导致小滞后的主要内容,如果未能解决你的问题,请参考以下文章

向 UICollectionViewCell 添加圆角和阴影

如何使用清晰的背景颜色向 UICollectionViewCell 添加阴影?

UICollectionViewCell 阴影与装饰视图不一致

如何让我的 UICollectionViewCell 阴影渗入我的主视图?

UICollectionView 单元格阴影

子类化 UICollectionViewCell 导致永远不会被选中