滚动时,表格视图卡的阴影出现严重问题

问题描述 投票:0回答:1

我创建了一个非常简单的tableView,它有一个独特的单元格样式,在这个单元格中,我有一个模拟卡片的视图,我应用阴影来突出光线,当我滚动表格时,阴影是正确渲染的,但是当我向下滚动时,阴影渲染得很差。

这是我的扩展 UIView 我用来涂抹阴影的

func applyShadow(color: UIColor = .black, opacity: Float = 0.1) {
    layer.masksToBounds = false
    layer.shadowColor = color.cgColor
    layer.shadowOpacity = opacity
    layer.shadowRadius = 10
    layer.shadowOffset = CGSize(width: 0, height: 30)
    layer.shouldRasterize = true
}

下面是我如何将上述方法应用到我的 "卡片 "视图中的tableviewcell上

override func layoutSubviews() {
    super.layoutSubviews()
    cardContainer.applyShadow()
}

下面是这个单元格在tableview中的实例化过程。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "\(HomeCardViewCell.self)", for: indexPath)
    return cell
}

我已经覆盖了 prepareForReuse 方法,但没有成功......

override func prepareForReuse() {
    super.prepareForReuse()
    clipsToBounds = false
    contentView.clipsToBounds = false
}

我正在使用的所有队列代码的链接,以Gist为单位。

如果我不滚动表格视图或向上滚动,它就会正确地呈现。

enter image description here

如果我向上滚动,然后返回,就会出现糟糕的渲染效果。

enter image description here

swift uitableview uiview tableview shadow
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.