问题描述
我有一个单元格的设计,垂直间距为 10 像素。我想在这些单元格周围设置阴影(实际上我将这些阴影应用于每个单元格的子视图),但这是我得到的结果:
如您所见,阴影被其他单元格和表格视图页眉/页脚截断。
这是我的代码:
视图控制器
final class SCVC: UIViewController {
@IBOutlet weak var tableView: UITableView! {
didSet {
tableView.backgroundColor = .clear
tableView.separatorStyle = .none
}
}
override func viewDidLoad() {
tableView.register(UINib(nibName: "ShadowCell",bundle: .main),forCellReuseIdentifier: "ShadowCell")
view.backgroundColor = .white
}
}
extension SCVC: UITableViewDataSource,UITableViewDelegate {
func tableView(_ tableView: UITableView,numberOfRowsInSection section: Int) -> Int {
return 4
}
func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
return tableView.dequeueReusableCell(withIdentifier: "ShadowCell",for: indexPath) as! ShadowCell
}
func tableView(_ tableView: UITableView,heightForRowAt indexPath: IndexPath) -> CGFloat {
return 100
}
func tableView(_ tableView: UITableView,viewForHeaderInSection section: Int) -> UIView? {
let headerView = UIView(frame: CGRect(origin: .zero,size: CGSize(width: tableView.bounds.width,height: 20)))
headerView.backgroundColor = .clear
let label = UILabel(frame: CGRect(origin: CGPoint(x: 16,y: 8),size: CGSize(width: headerView.frame.width - 32,height: 34)))
label.backgroundColor = .clear
label.text = "Header view"
headerView.addSubview(label)
return headerView
}
func tableView(_ tableView: UITableView,heightForHeaderInSection section: Int) -> CGFloat {
return 50
}
func tableView(_ tableView: UITableView,estimatedHeightForHeaderInSection section: Int) -> CGFloat {
return 50
}
}
单元格
final class ShadowCell: UITableViewCell {
@IBOutlet weak var innerView: UIView! {
didSet {
innerView.backgroundColor = .white
innerView.layer.cornerRadius = 10.0
innerView.layer.shadowColor = UIColor.black.withAlphaComponent(0.2).cgColor
innerView.layer.shadowOpacity = 1.0
innerView.layer.shadowRadius = 24.0
innerView.layer.shadowOffset = CGSize(width: 0,height: 8)
}
}
}
单元格XIB
我该如何解决这个问题?
感谢您的帮助
解决方法
通常,如果某些内容被剪裁,可能有以下主要原因:
- clipsToBounds 设置为 true。
- 背景颜色不清晰
所以要解决您的问题,您需要针对单元格及其内容视图修复这些问题。您可以在您的 xib 或代码中执行此操作:
MinGW-w64