自动调整大小UITableViewCell阴影已关闭

时间:2017-06-05 15:33:09

标签: ios swift uitableview

我有一个自定义UITableViewCell自定义UILabel和阴影。

class CustomCell: UITableViewCell {

  @IBOutlet weak var titleLabel: UILabel!
  @IBOutlet weak var cellBackgroundView: UIView!
  @IBOutlet weak var creationDateLabel: UILabel!

  override func layoutSubviews() {
    super.layoutSubviews()
    self.cellBackgroundView.layer.cornerRadius = 12

    self.cellBackgroundView.layer.shadowColor = UIColor.black.withAlphaComponent(1.0).cgColor
    self.cellBackgroundView.layer.shadowOffset = CGSize.zero
    self.cellBackgroundView.layer.shadowRadius = 9
    self.cellBackgroundView.layer.shadowOpacity = 0.8
    self.cellBackgroundView.layer.shadowPath = UIBezierPath(rect: self.cellBackgroundView.bounds).cgPath
    self.cellBackgroundView.layer.masksToBounds = false
    self.cellBackgroundView.layer.shouldRasterize = true

    self.cellBackgroundView.layer.rasterizationScale = UIScreen.main.scale
  }
}

我已尝试在layoutSubviews()cellForRowAt: indexPathwillDisplay cell中实施此代码,但它始终关闭且不会居中:

Shadow is not centered but off 实施它的正确方法是什么?

编辑:当我开始在tableView中滚动时,它可以正常工作。

编辑2:这就是它的样子:

This is how it should look!

谢谢!

1 个答案:

答案 0 :(得分:2)

尝试使用发布的代码,不用行:

self.cellBackgroundView.layer.shadowPath = UIBezierPath(rect: self.cellBackgroundView.bounds).cgPath

这应该可以解决问题。