我为UITableView创建了自定义TableViewCell:
class DialogCell: UITableViewCell {
var dialog: Dialog? {
didSet {
setupDialog()
if let seconds = dialog?.message!["timestamp"] {
...
}
}
}
private func setupDialog() {
...
}
override func layoutSubviews() {
super.layoutSubviews()
...
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: .subtitle, reuseIdentifier: reuseIdentifier)
addSubview(timeLabel)
addSubview(profileImageView)
timeLabel.frame = CGRect(x: 140, y: 65, width: 100, height: 30)
profileImageView.frame = CGRect(x: 30, y: 20, width: 80, height: 80)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
我需要在选择时更改单元格的背景颜色:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let selectedCell: UITableViewCell = dialogsTableView.cellForRow(at: indexPath)!
selectedCell.contentView.backgroundColor = .pink
...
}
但是我有一些灰线。
我将这些代码添加到viewDidLoad():
dialogsTableView.separatorColor = .clear
dialogsTableView.separatorStyle = .none
dialogsTableView.register(DialogCell.self, forCellReuseIdentifier: cellid)
dialogsTableView.backgroundColor = .black
但是它不起作用。 怎么了谢谢
答案 0 :(得分:0)
尝试
cell.separatorInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: .greatestFiniteMagnitude)
答案 1 :(得分:0)
我知道您已经通过代码尝试过此操作,但也尝试使用接口。请尝试以下解决方案: 打开表视图的属性检查器,如下所示:
现在将“分隔符值”选择为“无”。
如果仍然无法使用,请在应用程序运行时以及在相应屏幕上按以下所示按钮使用“调试视图层次结构”。这样一来,您就可以查看视图的布局方式,并缩小问题出处的确切范围。
希望这会有所帮助:)
答案 2 :(得分:0)
我决定尝试“调试视图层次结构”并找到问题。
我选择的BackgroundView颜色为灰色。然后我重新分配了selectedBackgroundView:
let backView = UIView(frame: selectedCell.frame)
backView.backgroundColor = .pink
selectedCell.selectedBackgroundView = backView
selectedBackgroundView位于中间。感谢Asim的想法。