我正在尝试给UIStackView阴影。我的stackview在一个带有一些标签和按钮的prototypecell中。
首先,我在绑定(bind)到我的自定义单元格的类中引用了名称为 UIViewBank 的stackview:
class CustChatBankCell: UITableViewCell {
@IBOutlet weak var UIViewBank: UIStackView!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
在我的 Controller 中,我在以下位置使用扩展名:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell:CustChatBankCell = self.tbChat.dequeueReusableCell(withIdentifier: "CustomBankCell") as! CustChatBankCell
cell.UIViewBank.dropShadow()
return cell
}
}
扩展代码:
extension UIStackView {
func dropShadow(scale: Bool = true) {
self.layer.masksToBounds = false
self.layer.shadowColor = UIColor.black.cgColor
self.layer.shadowOpacity = 0.5
self.layer.shadowOffset = CGSize(width: -1, height: 501)
self.layer.shadowRadius = 1
self.layer.shadowPath = UIBezierPath(rect: self.bounds).cgPath
self.layer.shouldRasterize = true
self.layer.rasterizationScale = scale ? UIScreen.main.scale : 1
}
}
但是没有出现阴影。
最佳答案
您无法执行此操作,因为UIStackView
是非绘图 View ,这意味着永远不会调用drawRect()
并忽略其背景颜色。考虑将UIStackView
放在另一个UIView
内,并为该 View 提供背景色。
从Apple Docs
关于ios - UIStackView的阴影未显示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45961373/