我正在尝试在每个集合视图单元格上添加50%黑色Alpha视图。收集视图单元格的顶部有背景图片和文字。希望叠加视图位于两者之间。
在我的cellForItemAt方法中,使用以下命令:
let overlayView = UIView()
overlayView.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5)
overlayView.frame = cell.bounds
cell.addSubview(overlayView)
问题是当我向下滚动然后向上滚动时,叠加层不断增加,使Alpha值比50%暗得多。此外,overlayView已添加到我的文本上方(我需要在文本下方。)
如何防止覆盖叠加多次,并将其添加到单元格的正确层之间?
最佳答案
发生这种情况是因为您的单元已出队并多次重复使用,因此,您要添加多个层。
将此代码放入您的单元格类中
override func awakeFromNib() {
super.awakeFromNib()
let overlayView = UIView()
overlayView.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5)
overlayView.frame = self.bounds
self.addSubview(overlayView)
}
或者,如果您想获得相同的结果,则可以设置黑色backgroundColor并将imageView的alpha设置为50%
cell.backgroundColor = .black
cell.imageView.alpha = 0.5