首页 > 解决方案 > 向上滚动后表格视图单元格中的阴影不起作用

问题描述

当我向上滚动阴影无法正常工作时,我在 tableview 单元格内的视图中有阴影。我相信这是因为状态变化,但我不知道该怎么做。这是我的代码

在向上滚动之前从这里开始:

表格视图单元格

向上滚动后:

失败的影子

class PerformanceKnowledgeCell: UITableViewCell {

    @IBOutlet weak var hrzStackView: UIStackView!
    @IBOutlet weak var containerView: UIView!

    override func awakeFromNib() {
        containerView.layer.shadowColor = UIColor.borderColor.cgColor
        containerView.layer.shadowOffset = CGSize(width: -1, height: 8)
        containerView.layer.shadowOpacity = 1.0
        containerView.layer.shadowRadius = 10
        containerView.layer.masksToBounds = false

        contentView.clipsToBounds = false
        contentView.layer.masksToBounds = false
        clipsToBounds = false
        layer.masksToBounds = false
    }
}

谢谢你

标签: iosswiftuitableview

解决方案


该问题可能与细胞的实际重用有关。这意味着当您滚动时,最后一个单元格将被删除并再次插入。所以视图的顺序发生了变化。

我能够使用单元格的 zPosition 解决此问题(= 维持秩序):

 func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
        cell.layer.zPosition = CGFloat(tableView.numberOfRows(inSection: 0) - indexPath.row)
    }

推荐阅读