重用shadow CALayer UITableViewCell

时间:2017-08-27 11:37:15

标签: swift uitableview swift3

我正在尝试为UITableViewCell创建一个投影,但CALayer不能像它假设的那样工作。

  1. 一旦它只在单元格的顶部。
  2. 一旦它只在单元格的底部。
  3. 一旦它位于单元格的底部和顶部。
  4. 我的自定义单元格有:

    全局变量:

    var l = CALayer()
    

    接下来,当一个单元格将被重用时,我必须从超级层中删除该层。

     override func prepareForReuse() {
            super.prepareForReuse()
            l.removeFromSuperlayer()
        }
    

    我正在设置边界并在内部插入图层:

    override func layoutSubviews() {
            super.layoutSubviews()
            l.frame = self.bounds
            layer.insertSublayer(l, at: 0)
        }
    

    最后layer配置位于willDisplay cell:

    l.backgroundColor = UIColor.rgbColor(red: 221, green: 221, blue: 221, alpha: 1.0).cgColor
                l.position = CGPoint(x: bounds.width / 2, y: -bounds.height / 2 + 0.5)
                l.bounds = CGRect(x: 0, y: 0, width: bounds.width, height: bounds.height)
    
                l.shadowColor = UIColor.darkGray.cgColor
                l.shadowOffset = CGSize(width: 0, height: 1)
                l.shadowOpacity = 0.8
                l.shadowRadius = 5.0
                l.zPosition = -1
    

    l没有单元格。之前,它完全进入自定义单元格方法。

    任何想法我错过了什么? 谢谢!

0 个答案:

没有答案