我的表格视图如下所示

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return appsName!.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TableViewCell
    cell.appTimeLabel.isHidden = array[indexPath.row]
    cell.appNameLabel.text = appsName![indexPath.row]
    cell.appTimeLabel.text = appTimeLimit![indexPath.row]
    return cell
}


我的表格视图单元格类:

class TableViewCell: UITableViewCell {

   @IBOutlet weak var appNameLabel: UILabel!
   @IBOutlet weak var setLimitButton: UIButton!
   @IBOutlet weak var appIcon: UIImageView!
   @IBOutlet weak var appTimeLabel: UILabel!

   override func awakeFromNib() {
      super.awakeFromNib()
}

override func setSelected(_ selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)
    // Configure the view for the selected state
   }

}


我的行选择功能:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        array[indexPath.row] = !array[indexPath.row]
}


布尔值数组:

var array = [Bool](repeating:false, count: 200)


这是我的代码,我想显示无限标签并在其选择的单元格中设置“限制”按钮:

ios - 如何在选定的“自定义表 View ”中更改单元格的UI元素的状态?-LMLPHP

最初将setlimit按钮和无限制标签设置为隐藏。

实际工作单元截图(android):

ios - 如何在选定的“自定义表 View ”中更改单元格的UI元素的状态?-LMLPHP
ios - 如何在选定的“自定义表 View ”中更改单元格的UI元素的状态?-LMLPHP

这该怎么做?

最佳答案

您可以像这样为您的细胞数据创建字典;

  var myDic = [["appName": "app1",
             "appTime": "unlimited",
             "isSelected": true,
    ], ["appName": "app2",
             "appTime": "unlimited",
             "isSelected": true,
    ]
]


之后,您可以像这样使用它的计数;

 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return myDic.count
}


如果您根据字典中的“ isSelected”值更改复选框状态,那么您的问题将得到解决;

 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {



    let cell = myTableView.cellForRow(at: indexPath) as! TableViewCell

    if (myDic[indexPath.row]["isSelected"] as? Bool) == true {
        myDic[indexPath.row]["isSelected"] = false
    } else {
        myDic[indexPath.row]["isSelected"] = true
    }
    cell.appTimeLabel.isHidden = !(myDic[indexPath.row]["isSelected"] != nil)
    cell.setLimitButton.isHidden = !(myDic[indexPath.row]["isSelected"] != nil)
    cell.selectionBox.isSelected = (myDic[indexPath.row]["isSelected"] != nil)

    myTableView.reloadData()

}

关于ios - 如何在选定的“自定义表 View ”中更改单元格的UI元素的状态?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59533580/

10-16 21:09