Swift 发件人色彩

Swift sender tint color

我正在开发一款井字游戏,其中每个方块都是自己的按钮,当点击方块时按钮的图像会发生变化。我通过将所有方形按钮连接到同一个 IBAction @IBAction func buttonPressed(sender: AnyObject) 并使用 sender.setImage() 更改图像来完成此操作。问题是,图像都是蓝色的。我可以通过更改全局色调颜色将这种蓝色更改为不同的颜色,但我真正想要的是 O 和 X 图像是不同的颜色。 sender.tintColor 会抛出一个错误,而 button.tintColor 就像我在下面的代码中所做的那样,每次点击一个方块时都会来回更改一张图像的颜色。我曾尝试在文件检查器中将全局色调设置为无颜色,但它只是回到默认的蓝色。有什么想法吗?

if activePlayer == 1 {

    sender.setImage(UIImage(named: "o-img"), forState: .Normal)

    activePlayer = 2

    button.tintColor = UIColor.blackColor()

} else {

    sender.setImage(UIImage(named: "x-img"), forState: .Normal)

    activePlayer = 1

    button.tintColor = UIColor.whiteColor()

}

当您将图像拖到视图控制器的代码中进行连接时,在单击之前"Ok"将发件人更改为 UIImage 而不是 AnyObject。

您需要禁用该按钮,这样下一个玩家就无法点击它。

sender.enabled = false

事实证明,将按钮类型从 'System' 更改为 'Custom' 会删除色调。希望对遇到同样问题的其他人有所帮助!