如何在tableview swift中显示Checkmark?

时间:2016-11-24 09:18:41

标签: ios swift xcode tableview

我必须在选择某些数组值之前显示复选标记,我必须显示数组值1的复选标记,而不显示0.如何执行此操作..检查以下代码:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{

    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
    cell.textLabel?.text = AllItems[indexPath.row] as? String
    for dict1  in selectedItems
    {
         if Intvalues == dict1 as? NSObject  {
           // I have to show CheckMark
}
          else if ZeroIntvalues == dict1 as? NSObject
         {
            // I don’t need to show CheckMark



        }
    }
    cell.textLabel?.textColor = UIColor.whiteColor()
    return cell
}

4 个答案:

答案 0 :(得分:3)

由于@ Paulw11的原因,你的代码错了。每个tableViewCell都会显示复选标记,因为for循环的最后一个对象始终为1

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
    cell.textLabel?.text = AllItems[indexPath.row] as? String
        if Intvalues == AllItems[indexPath.row] as? Int  {
           // I have to show CheckMark
          cell.accessoryType = .Checkmark
         } else {
          cell.accessoryType = .None
         }
    cell.textLabel?.textColor = UIColor.whiteColor()
    return cell
}

答案 1 :(得分:1)

Tableview单元格有附件类型, 在tableviewCellForRowAtIndexPath

中使用它
cell.accessoryType = UITableViewCellAccessoryCheckmark;

答案 2 :(得分:1)

您在下方显示复选标记。

  cell.accessoryType = .None
if Intvalues == dict1 as? NSObject  {
     // I have to show CheckMark
     cell.accessoryType = .Checkmark
}

答案 3 :(得分:1)

这是我在我的应用中使用的一种方法,

如果您使用的是webservice,那么在调用webservice之后 实现这个逻辑:

这个代码在webservice调用部分:

for i in 0..<arrNL.count {
   let dict = arrNL[i].mutableCopy() as! NSMutableDictionary
   dict.setObject("0", forKey: "isChecked")
   self.arrNotificationList.addObject(dict)
}
// Here 0 indicates that initially all are uncheck.

现在管理CellForRowAtIndexPath中的条件:

let dict = arrNotificationList[indexPath.row] as! NSDictionary
if(dict["isChecked"] as! String == "0") { // Unchecked
   cell.btn_CheckUnCheck.setImage(UIImage(named: "uncheck"), forState: UIControlState.Normal)
} else { // Checked
   cell.btn_CheckUnCheck.setImage(UIImage(named: "check"), forState: UIControlState.Normal)
}
// in this condition you can manage check uncheck status    

现在我们可以检查或取消选中一个按钮的代码

let dict = arrNotificationList[indexValue] as! NSMutableDictionary
if(dict["isChecked"] as! String == "1") {
   dict.setObject("0", forKey: "isChecked")
} else {
   dict.setObject("1", forKey: "isChecked")
}
arrNotificationList.replaceObjectAtIndex(indexValue, withObject: dict)
tblView.reloadData()