【问题标题】:How do I make a button disappear and replace itself with another button in swift?如何使按钮消失并迅速用另一个按钮替换自己?
【发布时间】:2016-09-23 14:48:34
【问题描述】:

我是编程新手,我决定从在 Xcode 中使用 Swift 开始。 我目前卡住了,不知道如何继续。

我想使用一个按钮,一旦按下它就会在标签中写下一个确定的句子,然后消失并用一个新按钮替换它自己,这将使我能够执行新功能。这基本上是应用程序的全部目的。事实上,第二个按钮会做同样的事情:在标签上添加一个句子然后消失,为另一个按钮留出位置。

这是我目前所拥有的:

@IBOutlet weak var button1: UIButton!

@IBAction func button1(sender: UIButton) {
    testo.text = ("ciao" + "\n" + testo.text)
    button1.hidden = true
}

提前致谢!

【问题讨论】:

  • 我们在这里讨论了多少个按钮?为什么它们必须是按钮的不同实例?为什么不能重复使用单个按钮并每次更改按钮的外观/文本?
  • 我很想用一个按钮来改变它的功能,我真的很陌生,所以我认为这是不可能的。但如果有可能,那会让一切变得更容易!

标签: swift function button


【解决方案1】:

如果你知道要在前面显示的文本,你可以创建一个数组并在每次点击时遍历这个数组

为点击次数和数组属性创建变量

var clickCount: Int!
var dataArr: Array<String>!

用数据填充数组

override func viewDidLoad() {
    super.viewDidLoad()

    dataArr: Arr = ["Message 1", "Message 2", "Message 3"]
    clickCount = 0
}

最后使用您的方法更新标签中的文本

@IBAction func button1(sender: UIButton) {

// handle array size
    if clickCount < dataArr.count {

        let textFromArray = String(dataArr[clickCount])
        testo.text = ("ciao" + "\n" + textFromArray)

        // increment count
        clickCount += 1
    }
    else {
    // do something if all items from array were exhausted
        testo.text = ""
    }
}

【讨论】:

  • 感谢您的帮助。我在想,如果我真的使用你的方式,它会在一段时间后变得非常庞大和复杂。因为我想要一系列每次都会导致不同任务的按钮。正如 Shim 建议的那样,如果可能的话,我宁愿有一个按钮并更改其功能和标题。再次感谢!
  • 这基本上就是这里的建议
  • 明白。您仍然可以使用上面的方法并将每个按钮的标题存储在数组中。每次点击计数都会更改标题...
  • 感谢您的支持。即使我想让按钮a和b一开始就存在,如果我按下a它会显示c和d(并删除b),但如果我按下b它会显示e和f(删除a) .再次从这些按钮中,您还有其他选择。把它想象成一个金字塔,它只是根据你选择的路径将选项加倍,但选项总是 2(有时我想要最多 4 个)。这可以通过使用数组来实现吗?耐心点,我昨天就开始学这个了:)
  • 嗯,金字塔级联?它看起来像某种测验类型的东西。我不确定我是否理解正确,但看起来你总是会显示 2 个选项。这意味着您可以使用 2 个数组 - 每个数组用于一个按钮 - arrayA 和 arrayB。很难猜测,如果我们能看到级联的设计和可能的答案会更容易。然后你可以为它创建自定义逻辑..你能画一些吗?
猜你喜欢
  • 2021-12-18
  • 2020-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多