我有以下代码
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("cell") as UITableViewCell
cell.textLabel?.text = users[indexPath.row]
return cell
}
override func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {
var cell:UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)!
cell.accessoryType = UITableViewCellAccessoryType.Checkmark
}
目的是在点击行时显示复选标记。有两行,我观察到以下行为。
选择属性设置为(Xcode默认值)
选择:单一选择 编辑:编辑期间无选择
除了上面的代码之外,在点击行时,我还应该做些什么来显示复选标记。看了相关的问题,但无法确定它。
答案 0 :(得分:2)
这是一个非常常见的问题,我认为几乎所有进行iOS编程的人都面临同样的问题。
您需要更改
override func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath)
到
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
问题在于XCode建议是一种类型UITableView委托方法。由于取消选择首先按字母顺序排列,因此这是一个非常常见的错误。我曾经在Objective C中面对这个问题,看到Swift出现这个问题也很有趣。