单元格中的UIVisualEffectView减慢了UICollectionView

时间:2015-12-03 01:45:28

标签: ios swift performance uicollectionview uivisualeffectview

我的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)
        }
    }
}

我可以做些什么来提高滚动性能?

1 个答案:

答案 0 :(得分:2)

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