我试图弄清楚为什么在表格视图中向下滚动并向上备份后,表格单元格的自定义样式消失了。我需要怎么做才能保持样式?
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
答案 0 :(得分:0)
这里一种可能的解决方案是显式指定每个像元层的zPosition。
您需要确保上部单元格的位置较高,以便其内容(阴影)位于下部单元格的上方。
在函数的行中添加:
recyclerView