拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 Swift中didSelectRowAt函式的Switch陈述句

Swift中didSelectRowAt函式的Switch陈述句

白鹭 - 2022-02-25 2135 0 0

我正在使用表格视图并且在其单元格中有一个标签我想要的是在每次点击单元格时更改单元格标签。这是我的代码:

 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
 
  let cell = tableView.cellForRow(at: indexPath)

 switch indexPath {
            
        case 1:
            
            cell.cellLabel.text = "first time label changes"
        case 2:
            
            cell.cellLabel.text = "second time label changes"
            
        default:
            cell.cellLabel.text = "change the label"
        }

} 

现在,如果我使用:

只有情况 1 有效。如果我只使用:

它给了我以下错误:

有没有人有一个解决方案,如果我第一次点击一个单元格,案例 1 应该可以作业,如果我再次点击它,案例 2 应该可以作业?

uj5u.com热心网友回复:

var count = 0
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
count  = 1
let cell = tableView.cellForRow(at: indexPath)
switch count {   
    case 1:
        cell.cellLabel.text = "first time label changes"
    case 2:
        cell.cellLabel.text = "second time label changes"
        
    default:
        cell.cellLabel.text = "change the label"
    }
} 

如果你需要“第一次”,当你触摸它 3 次时

 var count = 0
 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
   count  = 1
   if count > 2 {
    count = 1
   }
   let cell = tableView.cellForRow(at: indexPath)
   switch count {   
   case 1:
     cell.cellLabel.text = "first time label changes"
   case 2:
     cell.cellLabel.text = "second time label changes"
   default:
     cell.cellLabel.text = "change the label"
  }
} 

uj5u.com热心网友回复:

var selectedRows = [Int]()
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath){
       
            selectedRows.append(indexPath.row)
            print(selectedRows)
            self.tableView.reloadData()
        }
    }
    
    func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
       
            if let index = selectedRows.firstIndex(of: indexPath.row) {
                selectedRows.remove(at: index)
            }
            print(selectedRows)
           self.tableView.reloadData()
            if selectedRows.isEmpty{
               
            }
        }
    }
class TableViewCell: UITableViewCell{
 override func setSelected(_ selected: Bool, animated: Bool) {
            super.setSelected(selected, animated: animated)
            if (selected) {
                print("selected")
                
                selectImage.image = UIImage(named:"secondImage")
              } else {
                  selectImage.image = UIImage(named:"secondImage")
              }
        }
}

如果你需要多选写 tableView.allowMultipleSelection = true

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *