//可选链用问号 数组可能为空
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 "删除"
}