使用表格组件(UITableView)

    //可选链用问号 数组可能为空
    var TBArr : [String]?
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        TBArr = NSArray(contentsOfFile: Bundle.main.path(forResource: "Controls", ofType: "plist")!) as? Array
        
        
        let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: self.view.bounds.width, height: self.view.bounds.height), style: .plain)
        tableView.delegate=self
        tableView.dataSource=self
        //创建一个重用的单元格
        tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cellID")
        
        self.view.addSubview(tableView)
        
    }
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return (TBArr?.count)!
    }
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 80
    }
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        let cellStr = TBArr?[indexPath.row]
        
        let alert = UIAlertController(title: "点击", message: cellStr, preferredStyle: .alert)
        let okAct:UIAlertAction = UIAlertAction(title: "确定", style: .default, handler: {
            action in
            print("点击了第\(indexPath.row)行")
        })
        let cancleAct:UIAlertAction = UIAlertAction(title: "取消", style: .cancel, handler: nil)
        alert.addAction(okAct)
        alert.addAction(cancleAct)
        self.present(alert, animated: true, completion: nil)

    }
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cellID:String = "cellID"
        let cell:UITableViewCell = tableView.dequeueReusableCell(withIdentifier: cellID, for: indexPath)
        cell.textLabel?.text = TBArr?[indexPath.row]
        cell.accessoryType = .disclosureIndicator
        
        return cell
    }
//滑动删除
    func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCellEditingStyle {
        return UITableViewCellEditingStyle.delete
    }
    func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
        return true
    }
    //滑动删除必须实现的方法
    //清除数据源
    func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
        TBArr?.remove(at: indexPath.row)
        tableView.deleteRows(at: [indexPath], with: .top)
    }
    ////修改删除按钮的文字
    func tableView(_ tableView: UITableView, titleForDeleteConfirmationButtonForRowAt indexPath: IndexPath) -> String? {
        return "删除"
    }

你可能感兴趣的:(使用表格组件(UITableView))