【问题标题】:How to select one of three buttons in swift in an IBAction如何在 IBAction 中快速选择三个按钮之一
【发布时间】:2020-09-21 20:38:33
【问题描述】:

我有 30 个按钮,每行 3 个。我希望用户能够选择每行三个之一,左列是默认值(“ee”)。我似乎无法完成这项工作......

使用以下代码,我可以在单击按钮时更改按钮的颜色,但在单击另一个按钮时不会取消选择。我想将按钮标题字符串发送到“ext”变量,这将告诉应用程序用户在每一行上选择了哪个选项(每一行都有不同的变量)

我将此代码用于一行 3 个按钮:

@IBAction func `extension`(_ sender: UIButton) {
        ext = String(sender.titleLabel!.text ?? "ee")
        sender.backgroundColor = #colorLiteral(red: 0.09334511863, green: 0.1549694077, blue: 0.2597150259, alpha: 1)
        sender.isSelected = !sender.isSelected

【问题讨论】:

  • 您希望每一行都有一个单选按钮行为。在这里阅读:stackoverflow.com/a/29117898/13087977
  • 我是否为每一行创建一个新数组?似乎需要大量代码才能使其适用于这么多按钮。我在 Swift 课程上,他们制作了一个包含三个按钮的应用程序,每个按钮使用一个 IBOutlet。我正在尝试分解该代码并查看是否可以使其工作
  • 对于 30 个按钮,您需要 30 个插座。一种或另一种方式,您将需要它。在我之前发送的帖子中,他只是将 3 个按钮分组,逻辑在 RadioButtonController 中。您需要 10 个数组来执行此操作,但您只需编写一次逻辑代码 - 这太棒了!直接使用 IBActions 会导致大量重复/相似的代码。
  • 我试试看!我对此真的很陌生,仍在努力思考如何放入这些单选按钮..

标签: swift button


【解决方案1】:

我最终只是将它添加到每一行,从按钮名称开始

    aano.isSelected = false
    aama.isSelected = false
    aaye.isSelected = false
    sender.isSelected = true

【讨论】:

  • 这肯定行得通,唯一的问题是每个按钮/行都有重复的逻辑。
猜你喜欢
  • 1970-01-01
  • 2021-12-05
  • 2015-05-26
  • 2021-01-12
  • 2014-03-07
  • 1970-01-01
  • 1970-01-01
  • 2011-11-07
  • 2011-11-12
相关资源
最近更新 更多