获取所有带有附件类型复选标记的tableview单元格

时间:2016-02-04 19:04:56

标签: ios swift uitableview

我想在tableview中获取所有选定的值。

例如:

// I'm unable to loop through the tableview (myTableView.cells is not valid)
func saveClicked(sender:AnyObject)
{
 let testArray = NSMutableArray()

  for i in myTableView.cells
  {
    if (i.accessorytype = .CheckMark)
    {
      testArray.addObject(i)
    }
  }
}

2 个答案:

答案 0 :(得分:1)

  1. 您希望桌面单元格的默认选中标记,然后添加
  2. cell.accessoryType = .Checkmark

    in" cellForRowAtIndexPath"委托方法

    1. 如果您想要选择行的选中标记,请添加
    2. 覆盖func tableView(tableView:UITableView,didSelectRowAtIndexPath indexPath:NSIndexPath){     if cell.accessoryType == .Checkmark {         cell.accesoryType == .None     如果cell.accessoryType == .None {else         cell.accesoryType = .Checkmark     } }

答案 1 :(得分:0)

这是一个简化的例子。设置项目数组myItemsArray并为其提供isChecked属性bool。然后,在didSelectRow方法中,您将isChecked值切换为truefalse。然后,当您想要找到myItemsArray中的哪些"单元格"(技术上的项目)的值为true时,您可以通过数组进行迭代,如下所示。如果不清楚请告诉我。

var myItemsArray = [Items]()
var checkedItemsArray = [Items]()

override func tableView(tableView:UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){
    if cell.accessoryType == .Checkmark {
        cell.accesoryType == .None
        myItemsArray[indexPath.row].isChecked == false
    } else if cell.accessoryType == .None {
        cell.accesoryType = .Checkmark
        myItemsArray[indexPath.row].isChecked == true
    }
}

  func saveClicked(){
    myItemsArray.removeAll()

    for i in 0...myItemsArray.count-1 {
        if myItemsArray[i].isChecked == true{
            checkedItemsArray.append(myItemsArray[i])
        }
    }
}