UIVisualEffectView в ячейках замедляет прокрутку UICollectionView
Я имею 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 ответ
Не используйте UIVisualEffectView таким образом, это то, что вы можете сделать. Apple предоставила много информации о производительности анимации / прокрутки, и подобные вещи находятся в верхней части списка того, чего не следует делать. И визуальные эффекты являются худшими; они не просто размывают изображение - они выполняются в гораздо более высокой точке цепочки рендеринга, и вы заставляете их выполнять рендеринг в каждом кадре (отсюда и проблема).