在单个VC应用中, 信息标签用于按文本显示按钮的点击次数, 想法是在点击次数均匀/不均匀的情况下切换文本。我做到了, 但是,当我尝试将夫妇(9)UIButton链接到发生计数和标签更新的单个IBAction时,问题就来了。在这里,标签更新比实际计数落后一步(通过控制台上的print(counter)验证)。
有人可以帮忙为什么会这样吗? 我当然可以为每个UIButton使用单独的IBAction来做到这一点, 但是一个动作和按钮标签可以正常工作,因此最好通过单个IBAction来减少代码。
import UIKit
ViewController类:UIViewController {
var player:Player = .cross
@IBOutlet weak var label: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.label.text = "Player \(player.rawValue) is on the move"
}
@IBAction func Move(_ sender: UIButton) {
if player == .cross {
player = .circle
} else {
player = .cross
}
print(sender.tag)
print("Player \(player.rawValue) is on the move")
self.label.text = "Player \(player.rawValue) is on the move"
}
@IBAction func button(_ sender: UIButton) {
if player == .cross {
player = .circle
} else {
player = .cross
}
print(sender.tag)
print("Player \(player.rawValue) is on the move")
self.label.text = "Player \(player.rawValue) is on the move"
}
}
//移动功能是常用的IBAction,它滞后于标签更新 // func按钮是单独按钮的操作,可以正确进行标签更新
//调试进度:类似的代码在其他桌面上工作正常,没有滞后, 此外,工作代码整洁,在我的桌面上运行时滞后。 我怀疑这可能是模拟器问题。 作为记录,我的xcode做了几天前的最新修订。