向下滚动后,UITableViewCell样式消失

时间:2019-04-30 22:53:58

标签: swift

我试图弄清楚为什么在表格视图中向下滚动并向上备份后,表格单元格的自定义样式消失了。我需要怎么做才能保持样式?

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell : CustomTrendingCell = trendingTableView.dequeueReusableCell(withIdentifier: "cell") as! CustomTrendingCell
    cell.selectionStyle = .none
    let tapGesture = UITapGestureRecognizer(target: self, action: #selector(searchForTrendingTerm(sender:)))
    cell.iconView_search.isUserInteractionEnabled = true
    cell.iconView_search.tag = indexPath.row
    cell.iconView_search.addGestureRecognizer(tapGesture)
    cell.trendingLabel.text = trendingSearchTerms[indexPath.row]
    cell.elevate(elevation: 4.0) //where my style is being set
    return cell
}

extension UIView {
func elevate(elevation: Double) {
    self.layer.masksToBounds = false
    self.layer.shadowColor = UIColor.black.cgColor
    self.layer.shadowOffset = CGSize(width: 0, height: elevation)
    self.layer.shadowRadius = abs(CGFloat(elevation))
    self.layer.shadowOpacity = 0.4
}
}

下面的屏幕快照中的前2个项目已上下滚动。投影样式已被删除。底部2的样式正确,尚未向下滚动。 Screenshot example

1 个答案:

答案 0 :(得分:0)

这里一种可能的解决方案是显式指定每个像元层的zPosition。

您需要确保上部单元格的位置较高,以便其内容(阴影)位于下部单元格的上方。

在函数的行中添加:

recyclerView