如何在tableview swift中显示Checkmark?
我必须在选择某些数组值之前显示复选标记,我必须显示数组值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 }
因为@ 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 }
Tableview单元格有附件类型,在tableviewCellForRowAtIndexPath中使用它
cell.accessoryType = UITableViewCellAccessoryCheckmark;
你在下面显示复选标记。
cell.accessoryType = .None if Intvalues == dict1 as? NSObject { // I have to show CheckMark cell.accessoryType = .Checkmark }
这是我在我的应用中使用的方法,
如果您正在使用webservice,那么在调用webservice之后实现此逻辑:
webservice调用部分中的此代码:
for i in 0..
现在管理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()