开发者社区> 问答> 正文

自定义UITableViewCell在单击tableView后隐藏XIB

我正在尝试以编程方式使用UITableView构建一个带有自定义单元格的tableView,而不使用童话板,但是在我完成教程并尝试运行我构建的应用程序CustomCell之后,

自定义单元格显示,但一旦单击tableView,自定义单元格就会隐藏

有人能检查一下我是不是漏了什么东西吗?或者用编程制作的tableView使用XIB是错误的?

HomeViewController.swift

    fileprivate let homeTableView: UITableView = {
        let htm = UITableView()
        htm.translatesAutoresizingMaskIntoConstraints = false
        return htm
    }()

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.

        homeTableView.register(CusTableViewCell.nib, forCellReuseIdentifier: CusTableViewCell.identifier)

        setupTableView()

    }

    func setupTableView() {

        let viewModel = HomeViewModel()
        homeTableView.delegate = viewModel
        homeTableView.dataSource = viewModel

        homeTableView.rowHeight = 100

        view.addSubview(homeTableView)

        // homeTableView.separatorStyle = .none

        homeTableView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 0).isActive = true
        homeTableView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor, constant: 0).isActive = true
        homeTableView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor, constant: 0).isActive = true
        homeTableView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor, constant: 0).isActive = true

    }

}
CusTableViewCell.swift

class CusTableViewCell: UITableViewCell {

    @IBOutlet weak var nameLabel: UILabel!

    static var nib:UINib {
        return UINib(nibName: identifier, bundle: nil)
    }

    static var identifier: String {
        return String(describing: self)
    }

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code

        nameLabel.text = "Something"
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }

}
HomeViewModel.swift

extension HomeViewModel: UITableViewDataSource, UITableViewDelegate {

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 2
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        if let cell = tableView.dequeueReusableCell(withIdentifier: CusTableViewCell.identifier, for: indexPath) as? CusTableViewCell {
            cell.backgroundColor = UIColor(red:0.17, green:0.73, blue:0.83, alpha:1.0)
            return cell
        }
        return UITableViewCell()
    }

}

展开
收起
游客5akardh5cojhg 2019-12-04 13:08:04 516 0
1 条回答
写回答
取消 提交回答
  • 这个问题与

    viewModel
    .```  
    
    
    放
    

    viewModel 变```
    量到控制器类,如下所示:

    class HomeViewController {
    
      var viewModel: HomeViewModel!
      ...
    
      func setupTableView() {
          self.viewModel = HomeViewModel()
          ...
      }
    }
    
    
    2019-12-04 13:10:40
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载