gpt4 book ai didi

ios - 无法获得单选复选框

转载 作者:行者123 更新时间:2023-11-28 13:47:56 24 4
gpt4 key购买 nike

我制作了一个tableviewcell,里面有一个按钮。我在 tableviewcell.swift 类中连接了按钮的 IBAction。然后我创建了一个委托(delegate)并访问了 viewcontroller 类中的按钮触摸操作,就像这样......

func optionTap(cell: SlideUpTableViewCell) {
if let indexPath = tableview?.indexPath(for: cell) {
}
}

但我想要实现的是,我希望一次只选中一个复选框按钮。我有 3 行,现在我可以点击 3 个按钮中的每一个,而我只想一次点击 1 个按钮。也就是说,如果我点击第一个单元格上的按钮,然后点击第二个单元格中的按钮,那么应该自动取消选择第一个单元格按钮。简而言之,正常的单选是如何工作的……

我已经试过了......但是它不起作用......

   func optionTap(cell: SlideUpTableViewCell) {
if let indexPath = tableview?.indexPath(for: cell) {

if selectedArrayIndex.contains(indexPath.row) {

selectedArrayIndex.remove(at: selectedArrayIndex.index(of: indexPath.row)!)
cell.checkBobButton.tintColor = ThemeManager.current().inactiveGrayColor
cell.checkBobButton.setImage(UIImage(named: "circle_stroke"), for: .normal)

} else {
selectedArrayIndex.append(indexPath.row)
cell.checkBobButton.tintColor = ThemeManager.current().secondaryColor
cell.checkBobButton.setImage(UIImage(named: "circle_tick"), for: .normal)

}

}
}

编辑 1:这是 cellForRow..

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell: SlideUpTableViewCell = tableView.dequeueReusableCell(withIdentifier: cellID) as! SlideUpTableViewCell
cell.delegate = self
cell.selectionStyle = .none
cell.headingLabel.text = self.arrData[indexPath.row].heading
cell.subHeadingLabel.text = self.arrData[indexPath.row].subHeading

return cell
}

EDIT 2 这就是 UI 的外观..

enter image description here

最佳答案

首先,您不需要按钮操作。按照以下步骤轻松完美地编码:

  1. 在你的 Controller 中取一个 var var selectedIndex = -1//-1 如果没有选择任何索引,如果你想默认选择任何选项然后相应地改变它。

  2. 使用tableView委托(delegate)方法didSelectRowAt indexPath

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

    selectedIndex = indexPath.row
    myTblView.reloadData()

    }
  3. 现在切换 btn 只需在 cellForRow 中执行此操作即可。

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! Mycell

    :
    cell.myBtn.isSelected = indexPath.row == selectedIndex
    :

    return cell
    }
  4. 现在在 Storyboard中,为选定状态和默认状态分配按钮图像。

enter image description here

enter image description here

关于ios - 无法获得单选复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55160574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com