集合视图单元格alpha在滚动后正在改变

时间:2017-12-03 14:55:55

标签: ios swift uicollectionview

我创建了一个集合视图,其中单元格内部有一个视图。视图的alpha值为0.65。当我滚动时,视图变得更亮。也许这些观点会叠加在一起?

我的代码:

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! LevelStufenCell

    cell.levelViewBack = UIView()
    cell.levelViewBack.frame = CGRect(x: 0, y: 0, width: cell.frame.height, height: cell.frame.width)
    cell.levelViewBack.layer.cornerRadius = cell.levelViewBack.frame.height * (36 / 198)
    cell.levelViewBack.backgroundColor = UIColor.white
    cell.levelViewBack.alpha = 0.65
    cell.insertSubview(cell.levelViewBack, at: 10)

    return cell
}

1 个答案:

答案 0 :(得分:0)

单元格 重复使用 ,因此每次单元格滚动到视图中时,您都会向每个单元格添加另一个levelViewBack

您已在levelViewBack内定义LevelStufenCell ...是IBOutlet吗?如果是这样,您不需要每次都创建一个新的 - 只需删除此行:

cell.levelViewBack = UIView()

如果 IBOutlet,您是否在LevelStufenCell内创建了它?如果是这样,再次,只需删除该行。如果没有,检查它是否已经创建之前"再次创建":

if cell.levelViewBack == nil {
    cell.levelViewBack = UIView()
}