1

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

スクロールのパフォーマンスを向上させるにはどうすればよいですか?

4

1 に答える 1

3

この方法で UIVisualEffectView を使用しないでください。それができることです。Apple はアニメーションやスクロールのパフォーマンスについて多くの情報を提供しており、そのようなことはしてはいけないことのリストの一番上にあります。そして、視覚効果ビューは最悪です。それらは単に画像をぼかすだけではありません - それらはレンダーチェーンのはるかに高いポイントで実行され、すべてのフレームで再レンダリングを強制しています (したがって問題)。

于 2015-12-03T01:49:35.023 に答える