如何在tableview swift中添加复选标记

时间:2016-05-04 12:40:39

标签: swift uitableview checkbox cell checkmark

我试图在tableview单元格上显示复选标记,但复选标记有时会出现,当我滚动时它会消失。

代码下方:



 
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
    {
        let cell = tableView.dequeueReusableCellWithIdentifier("vvxxx12", forIndexPath: indexPath)
    
        // Configure the cell...
        
    cell.textLabel?.text = self.dataArray[indexPath.row] as? String //in dataArray values are stored
             

       if dataArray.containsObject(indexPath)
       {
            cell.accessoryType = .Checkmark
       }
       else {
            cell.accessoryType = .None
        }
       return cell
         }

        func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
            if let cell = tableView.cellForRowAtIndexPath(indexPath) {
                if cell.accessoryType == .Checkmark {
                    cell.accessoryType = .None
                   
                } else {
                    cell.accessoryType = .Checkmark
                   
                }
            }    
        }




3 个答案:

答案 0 :(得分:2)

只需在代码中进行以下更改,以便在滚动tableview时保持对tableview的选中标记

enter image description here

结果:

enter image description here

现在工作正常,任何问题让我知道我一定会帮助你出去。享受..

答案 1 :(得分:1)

对于Swift 3,以下为我工作

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    yourtableView.cellForRow(at: indexPath as IndexPath)?.accessoryType = .checkmark
}

func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
    yourtableView.cellForRow(at: indexPath as IndexPath)?.accessoryType = .none
}

答案 2 :(得分:0)

cell.textLabel?.text = self.dataArray[indexPath.row] as? String

这表明dataArray包含字符串。

if dataArray.containsObject(indexPath)

这表明dataArray包含索引路径。这两个都不应该是真的。一个用于数据的数组是有意义的,另一个用于检查所选行或行的数组也是有意义的,但两者的数组不同。

可能发生的事情是:

  • 选择行 - 然后更新单元格以使用复选标记附件
  • 表格已滚动且调用了cellForRowAtIndexPath - 任何时候dataArray都不会包含索引路径,因此附件始终被清除。

您需要在选择行时更新模型,存储所选行的索引路径或更新模型对象上的选定标志。