UITableViewCell にカスタム AccessoriesView を使用しています。チェックボックスを使用しています。ここでは、複数選択が必要です。選択中はコードが正常に機能しますが、選択を解除すると問題が発生します。cellForRowAtIndexPathMethod に何を記述すればよいかわかりません。私が直面している問題は、チェックボックスの選択を解除した後、再度選択できないことです。これが私のコードです:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let fourthCell = tableView.dequeueReusableCellWithIdentifier("fourthCell", forIndexPath: indexPath) as! ItemDetailFourthTableViewCell
if indexPath != self.lastIndexPath {
fourthCell.accessoryView = UIImageView(image: UIImage(named: "checkBoxPassive.png"))
fourthCell.accessoryView?.tag = 2
}
if indexPath == self.lastIndexPath {
fourthCell.accessoryView = UIImageView(image: UIImage(named: "checkBoxActive.png"))
}
return fourthCell
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
tableView.deselectRowAtIndexPath(indexPath, animated: true)
self.isSelected = true
self.lastIndexPath == indexPath
if indexPath.section == 1 {
let cell = tableView.cellForRowAtIndexPath(indexPath) as! ItemDetailFourthTableViewCell
print("The cell here is \(cell)")
print("Here the cell accessoryView is \(cell.accessoryView?.tag)")
if cell.accessoryView?.tag == 0 {
print("It is active")
cell.accessoryView = UIImageView(image: UIImage(named: "checkBoxPassive.png"))
} else if cell.accessoryView?.tag == 2 {
print("It is passive")
cell.accessoryView = UIImageView(image: UIImage(named: "checkBoxActive.png"))
}
}
}