我有一个自定义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: indexPath
和willDisplay cell
中实现此代码,但它始终处于关闭状态且未居中:正确的实现方式是什么?
编辑:当我开始在tableView中滚动时,它可以工作。
编辑2:这应该是这样的:
谢谢!
最佳答案
试试您发布的无行代码:
self.cellBackgroundView.layer.shadowPath = UIBezierPath(rect: self.cellBackgroundView.bounds).cgPath
这应该够了吧。