Open JohnnyDark opened 4 years ago
DataSource和delegate
**// MARK:- Table View Data Source**
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "ChecklistItem", for: indexPath)
return cell
}
**// MARK:- Table View Delegate**
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
}
//Swipe to delete: 添加该方法后就激活了删除功能
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
items.remove(at: indexPath.row)
let indexPaths = [indexPath]
tableView.deleteRows(at: indexPaths, with: .automatic)
}
//让cell不可被选中(storyboard中设置 selection 属性为 None也行)
override func tableView(_ tableView: UITableView, willSelectRowAt indexPath: IndexPath) -> IndexPath? {
return nil
// 返回当前被选中cell的index path,当前cell被选中
// 返回其他indexPath, 可以让其他cell被选中
// 返回nil,让row不能被选中
}
let newRowIndex = items.count
let item = ChecklistItem()
item.text = "I am a new row"
items.append(item)
let indexPath = IndexPath(row: newRowIndex, section: 0)
let indexPaths = [indexPath]
tableView.insertRows(at: indexPaths, with: .automatic)
table的样式: plain & grouped
rows & cell
row: 表示data model中的一条数据 cell: app中的ui用于显示row的数据, cell被设计为可以重用
prototype cell