我的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)
}
}
}
我可以做些什么来提高滚动性能?
答案 0 :(得分:2)
不要以这种方式使用UIVisualEffectView,这就是你可以做的。 Apple已经提供了很多关于动画/滚动性能的信息,而且那些东西是不该做的事情的首要问题。视觉效果观最差;它们不仅仅模糊图像 - 它们在渲染链中的更高点处执行,并且你强迫它们在每一帧上重新渲染(因此问题)。