class ChecklistViewController: UITableViewController {
var row0text = "Walk the dog"
var row1text = "Brush teeth"
var row2text = "Learn iOS development"
var row3text = "Soccer practice"
var row4text = "Eat ice cream"
var row0checked = false
var row1checked = false
var row2checked = false
var row3checked = false
var row4checked = false
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
if let cell = tableView.cellForRowAtIndexPath(indexPath) {
if indexPath.row == 0 {
row0checked = !row0checked
if row0checked {
cell.accessoryType = .Checkmark
} else {
cell.accessoryType = .None
}
} else if indexPath.row == 1 {
row1checked = !row1checked
...
这里row0checked = !row0checked
的目的是什么?
我知道!
在这里意味着不是,但我无法理解这部分代码。
答案 0 :(得分:3)
row0checked = !row0checked
所做的是它取相反的值,例如:
如果选中第一行并按下它,则将取消选中。
因此,如果row0checked
为true
且您运行row0checked = !row0checked
row0checked
将为false
,反之亦然。
这样做是为了检查/取消选中一个核对清单项,并通过设置cell.accessoryType
来显示它。