【发布时间】:2018-08-29 08:33:19
【问题描述】:
我有UICollectionView 有很多单元格。细胞上有需要模糊的图像。这就是为什么我要在image views 中添加带有模糊效果的UIVisualEffectView。单元格就像页面——每个单元格都占据了整个屏幕。
问题出在第二个单元格上。当它出现时,模糊的视图被明显添加并且很丑陋。其余的单元格在屏幕上变得可见并且正常时已经具有模糊的视图。这是我用来添加blur view的代码:
class ImageCell: UICollectionViewCell {
@IBOutlet weak var mainImageView: UIImageView!
@IBOutlet weak var backgroundImageView: UIImageView!
override func awakeFromNib() {
super.awakeFromNib()
let regularBlur = UIBlurEffect(style: .regular)
let blurView = UIVisualEffectView(effect: regularBlur)
blurView.frame = backgroundImageView.bounds
blurView.autoresizingMask = [.flexibleHeight, .flexibleWidth]
backgroundImageView.addSubview(blurView)
}
}
【问题讨论】:
-
我认为问题可能是为屏幕的大面积加载模糊需要大量处理,以便您能够在模糊完成之前看到图像。您的图像是否完全覆盖了单元格?如果是这样,您可能想寻找替代解决方案。就像那里总是模糊不清。其他选项是在模糊准备好之前隐藏图像,并在模糊准备好时取消隐藏。
-
@zero 感谢您的回复。是的,图像完全覆盖了单元格。 “总是模糊不清”是什么意思?
-
始终保持模糊就像在集合视图本身的顶部设置模糊一样。所以你只有 1 个模糊,而不是每个单元格 1 个。但也许解决方案是在加载模糊之前隐藏图像。你怎么看?
-
@zero 我如何知道模糊是否准备好?我想我不能只有一个模糊,因为在模糊上还有另一个图像,不应该被模糊。
-
将其隐藏在 awakeFromNib 中,将使用示例代码发布答案。
标签: ios uicollectionview uivisualeffectview