Swift UITableViewCell边框在删除时变成有角的



我刚刚创建了一个tableView,我想实现一个功能,允许用户删除一行。为此,我实现了这个函数:

func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
// Zeile löschen (Z.b. dann aus dem Array oder aus dem dauerhaftem CoreData)


tableView.deleteRows(at: [indexPath], with: .fade)
}
}

但是对于我的问题,你仍然要知道我用这个代码配置了我的单元格:

let cell = tableView.dequeueReusableCell(withIdentifier: "timerCell", for: indexPath) as! timerTableViewCell

cell.layer.borderWidth = 1
//        cell.layer.borderColor = CGColor(red: 41 / 255, green: 171 / 255, blue: 226 / 255, alpha: 1)
cell.layer.borderColor = CGColor(red: 0, green: 0, blue: 0, alpha: 1)
cell.textLabel?.text = "Timer"
cell.detailTextLabel!.text = "12:40"
cell.layer.cornerRadius = 18
cell.clipsToBounds = true
cell.layoutMargins.left = 30
cell.layoutMargins.right = 30

return cell

但是现在我有一个问题,删除单元格和我的单元格的框架:我的单元格有一个圆形的边界,如果我现在想在我的应用程序中删除这个单元格,边界突然变成方形,即使删除被取消后也不会再次变成圆形。不幸的是,这看起来很糟糕。以下是截图:

1。2 .

3。

有没有人有过这样的问题或想法,可以帮助我?

PS:我希望它看起来像这样:

这意味着单元格的CALayer正在被重建(可能当单元格被调整大小以显示删除按钮时)。

你可能想要创建一个自定义视图单元格类并覆盖单元格的func layoutSublayers(of: CALayer)(它通过UIView和CALayerDelegate继承)。在这个方法中,你可以调用super,然后在视图的图层上设置角的半径。

我现在已经尝试了一些新的东西,只是把一个视图放在我的单元格上,然后把这个视图而不是单元格直接四舍五入。但我总是得到一个错误消息与所需的init。这是我的代码:

let view: UIView = {
let view = UIView()
view.backgroundColor = .white
view.layer.borderWidth = 1.5
view.layer.borderColor = CGColor(red: 0, green: 0, blue: 0, alpha: 1)
view.layer.cornerRadius = 18
view.translatesAutoresizingMaskIntoConstraints = false

return view
}()
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: .default, reuseIdentifier: "timerCell")
super.awakeFromNib()

setConstrains()
}
func setConstrains() {
self.addSubview(view)
view.centerXAnchor.constraint(equalTo: self.centerXAnchor).isActive = true
view.centerYAnchor.constraint(equalTo: self.centerYAnchor).isActive = true
view.leftAnchor.constraint(equalTo: self.leftAnchor, constant: 0).isActive = true
view.rightAnchor.constraint(equalTo: self.rightAnchor, constant: 0).isActive = true
view.heightAnchor.constraint(equalTo: self.heightAnchor, constant: 0).isActive = true
view.bottomAnchor.constraint(equalTo: self.bottomAnchor, constant: 0).isActive = true



}

required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}```

相关内容

  • 没有找到相关文章

最新更新