Ios 单元格中的UIVisualEffectView会减慢UICollectionView的滚动速度
我有Ios 单元格中的UIVisualEffectView会减慢UICollectionView的滚动速度,ios,swift,performance,uicollectionview,uivisualeffectview,Ios,Swift,Performance,Uicollectionview,Uivisualeffectview,我有UICollectionView,其中包含带有大图像的单元格。滚动是平滑的,直到我将(小)UIVisualEffectView添加到每个单元格。现在,滚动性能非常糟糕 以下是所有使用UIVisualEffectView代码执行操作的代码: class ThemeCardCell: UICollectionViewCell { private let priceTagEffectView = UIVisualEffectView() override func layoutS
UICollectionView
,其中包含带有大图像的单元格。滚动是平滑的,直到我将(小)UIVisualEffectView
添加到每个单元格。现在,滚动性能非常糟糕
以下是所有使用UIVisualEffectView
代码执行操作的代码:
class ThemeCardCell: UICollectionViewCell {
private let priceTagEffectView = UIVisualEffectView()
override func layoutSubviews() {
super.layoutSubviews()
if priceTagEffectView.superview == nil {
priceTagEffectView.effect = UIBlurEffect(style: UIBlurEffectStyle.Light)
priceTagEffectView.frame = CGRect(x: bounds.width - priceTagMargin.width - 80, y: priceTagMargin.height, width: 80, height: 40)
priceTagEffectView.opaque = true
addSubview(priceTagEffectView)
}
}
}
如何提高滚动性能?不要以这种方式使用UIVisualEffectView,这是您可以做的。苹果已经给出了很多关于动画/滚动性能的信息,而这类事情是最不应该做的事情。视觉效果最差;它们不仅仅是模糊图像-它们在渲染链中的更高点执行,并且您强制它们在每一帧上重新渲染(这就是问题所在)。谢谢matt。请,请你能发布苹果信息的链接吗?作为参考,让我变得更聪明,也许会对在哪里寻找替代者有一些想法。回到WWDC视频中,寻找标题中有动画或表演的内容。有很多讨论集中在如何执行绘图以及滚动动画如何无法跟上某些计算密集型绘图类型。还有一个WWDC 2015视频特别谈到了UIVisualEffectView以及为什么它不可设置动画。有没有办法让它停止重新渲染?如果模糊在一个单元格中,单元格中的内容确实在移动,那么模糊在整个时间内看起来都是一样的,只是上下移动而已。