gpt4 book ai didi

ios - UITableViewCell : subviews shadows cut off by other cells and outside of table view?

转载 作者:行者123 更新时间:2023-12-05 02:45:41 25 4
gpt4 key购买 nike

我的设计中单元格的垂直间距为 10 像素。我想在这些单元格周围设置阴影(实际上我将这些阴影应用于每个单元格的 subview ),但这是我得到的结果:

enter image description here

如您所见,阴影被其他单元格和 TableView 页眉/页脚切断。

这是我的代码:

View Controller

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

enter image description here

我该如何解决这个问题?

谢谢你的帮助

最佳答案

一般情况下,如果有东西被削波,可能有以下主要原因:

  1. clipsToBounds 设置为 true。
  2. 背景颜色不清晰

因此,要解决您的问题,您需要为单元格及其内容 View 修复这些问题。你可以在你的 xib 或代码中完成:

cell.clipsToBounds = false
cell.contentView.clipsToBounds = false
cell.backgroundColor = .clear
cell.contentView.backgroundColor = .clear

关于ios - UITableViewCell : subviews shadows cut off by other cells and outside of table view?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65824228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com