我尝试在我的UITableView
中实现类似CardView的内容,因此每个表格单元格都有UIView
(名为cardView)和上下文UIView
。
我在layoutSubviews()
中为每个单元格添加阴影,如下所示:
cardView.layer.cornerRadius = 3
cardView.layer.shadowColor = UIColor.darkGrayColor().CGColor
cardView.layer.shadowOffset = CGSizeMake(0,1)
cardView.layer.shadowRadius = 3
cardView.layer.shadowOpacity = 0.5
cardView.layer.shadowPath = UIBezierPath(rect: cardView.bounds).CGPath
但结果我得到了:
仅在点击之后阴影正在调整大小。我认为这是动态细胞高度的问题,但我无法解决这个问题。
我创建了working example。
答案 0 :(得分:1)
将此代码添加到视图控制器:
override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
let cel = cell as! TableCell
cel.setup()
}
将此代码添加到TableCell:
func setup() {
cardView.layer.masksToBounds = false
cardView.layer.cornerRadius = 3
cardView.layer.shadowOffset = CGSizeMake(0,1)
cardView.layer.shadowRadius = 3
cardView.layer.shadowOpacity = 0.3
cardView.layer.shadowPath = UIBezierPath(rect: cardView.bounds).CGPath
}