的tableview回头率第一小区选择[迅速]
问题描述:
这里是我的代码:的tableview回头率第一小区选择[迅速]
var currentRow = 0
var cellTapped:Bool = true
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("CheckOutTableViewCell", forIndexPath: indexPath) as! CheckOutTableViewCell
if indexPath.row == currentRow {
if cellTapped == false {
cell.checkBox.checkState = .Unchecked
} else if cellTapped == true{
cell.checkBox.checkState = .Checked
}
}
else{
cell.checkBox.checkState = .Unchecked
}
return cell as UITableViewCell
}
每次我tableview
肯定会返回第一个单元格为选定的单元格,这是为什么呢?这里有什么问题?
答
你必须写
var currentRow = 0
var cellTapped:Bool = true
所以在此条件下
if indexPath.row == currentRow
cellTapped = true
这是真的。
试试这个
var cellTapped:Bool = false
答
你在寻找一种方法来选择你的表中的一些行,并使复选框可见? 好吧,那么有一个更简单的方法来解决这个问题,而不需要手动重新使用单元格等。
基本上你设置的属性,让iOS的做选择一项或多项tableView.allowsSelection = true
或tableView.allowsMultipleSelection = true
,然后实现/重写两个功能selectRowAtIndexPath
和的tableView的deselectRowAtIndexPath
。您在哪里检查并取消选中复选框。
看一看UITableView Reference的章节“管理选择”中的here。 没有必要手工控制所有的重复使用。
请参阅编辑 – Sofeda