微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

TableViewCell 的 Swift 底部边框消失

如何解决TableViewCell 的 Swift 底部边框消失

我是 Swift 编程的新手。我有以下 UI:


enter image description here

每次我单击其中一行时,该行就会消失,我不知道为什么。我刚刚发现每次一行消失时都会调用 tableView didSelectRowAt

class TodoListController: UIViewController,UITableViewDelegate,UITableViewDataSource {
    
    @IBOutlet var tableView: UITableView!
    let toyData = ["1","2","3","4","5"]

    override func viewDidLoad() {
        super.viewDidLoad()
        tableView.delegate = self
        tableView.dataSource = self
        let nib = UINib(nibName: "TableViewCell",bundle: nil)
        tableView.register(nib,forCellReuseIdentifier: "TableViewCell")
        tableView.backgroundColor = UIColor.init(red: 255/255,green: 214/255,blue: 107/255,alpha: 1)
    }
    
    func tableView(_ tableView: UITableView,didSelectRowAt indexPath: IndexPath) {
        print("do nothing")
    }
    
    func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "TableViewCell",for: indexPath) as! TableViewCell
        cell.textField?.text = "just how?!"
        return cell
    }
}


import UIKit
class TableViewCell: UITableViewCell {
    
    @IBOutlet var button:UIButton!
    @IBOutlet var textField:UITextField!

    override func awakeFromNib() {
        super.awakeFromNib()
        
        let bottomLine = CALayer()
        bottomLine.frame = CGRect(x: 10,y: self.frame.height,width: self.frame.width+70,height: 0.5)
        bottomLine.backgroundColor = UIColor.init(red: 253/255,green: 50/255,blue: 39/255,alpha: 1).cgColor
        self.layer.addSublayer(bottomLine)
        self.backgroundColor = UIColor.init(red: 255/255,alpha: 1)
    }
}

解决方法

在您的 cellForRowAt 函数中添加以下内容:

cell.selectionStyle = .none

有时这种奇怪的行为是由于默认选择样式造成的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。