【问题标题】:Set up and remove UIButton text label设置和删除 UIButton 文本标签
【发布时间】:2020-08-15 09:08:54
【问题描述】:

我正在尝试实现 tik tak toe 游戏。所以,我有 9 个按钮,每次我按下它们时,它们都会将它们的文本标签安装为“X”或“O”

sender.setTitle("X", for: .normal)
// or
sender.setTitle("O", for: .normal)

但是,当游戏结束时,我想删除所有文本标签并面临一个问题 - 我无法删除文本标签。我已经尝试了几种变体,但仍然无法理解问题。我试过了:

button.setTitle(nil, for: .normal)
button.setTitle("", for: .normal)
button.titleLabel?.text = ""
button.titleLabel?.text = nil

它不工作。即使在“重置失败”后我没有在此按钮上看到文本,文本仍然设置。 即使我正在做所有变体来删除文本然后调用

button.titleLabel?.text

我得到的不是空行或零,我得到“X”!!! (如果之前有“x”文本)

【问题讨论】:

  • 您的按钮附有 IBOutlets 吗?还是以编程方式创建?
  • @jawadAli outlet,带有一系列按钮和 1 个操作
  • 检查你的网点......我猜它们没有连接......因为这些所有线路都应该工作
  • 你也在主线程上做吗?

标签: ios swift uibutton


【解决方案1】:

我检查了...这些所有线路都正常工作..问题出在您的连接上

@IBOutlet weak var button: UIButton!
    override func viewDidLoad() {

        DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
            self.button.setTitle("", for: .normal)
            //self.button.backgroundColor = .red


        }
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

【讨论】:

  • 我无法理解连接有什么问题,一切都连接了。我是初学者,所以我不知道 DispatchQueue.main.asyncAfter 是什么以及它是如何工作的
  • 我有一个函数 reset ,它有 for 循环
  • 你能展示一下这个功能吗?以及从哪里调用它?
  • 在你的for循环中..你将按钮标题设置为nil ...检查按钮是否为nil
  • 这会打印什么? print(button.titleLabel?.text)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-29
相关资源
最近更新 更多