我目前正在学习Swift和斯坦福大学的iOS 11课程。其中一个项目是名为" Set"的纸牌游戏。对于那个项目,我有一个名为" cardView"在ViewController中,显示该字段上的所有卡片。
在那里" cardView"我为每张卡创建一个子视图。
目标是找到组成" set" 3的3张卡片
我还有一个提示按钮,它通过改变组成"设置"的3张卡的颜色向我展示了一种可能的解决方案。
每次我点击那个提示按钮,虽然我的分数会降低。
这是我的IBAction:
@IBAction private func hintButtonPressed(_ sender: UIButton) {
for subview in cardView.subviews {
subview.layer.borderWidth = 0
}
game.hint()
if !game.selectedCards.isEmpty {
for index in game.indicesOfSelectedCards {
cardView.subviews[index].layer.borderWidth = 4
cardView.subviews[index].layer.cornerRadius = 8
cardView.subviews[index].layer.borderColor = UIColor.red.cgColor
print("cardView.subview[\(index)] changed borderColor.")
}
game.resetSelectedCards()
} else {
print("There are no sets on the field")
}
scoreLabel.text = "Score: \(game.score)"
}
出于某种原因,如果我更改了scoreLabel的文本,则构成" set"的子视图/卡片。没有更新,我看不到边界的任何变化。
如果我删除这一行
scoreLabel.text = "Score: \(game.score)"
虽然我可以看到子视图的更改,但后来我看不到我更新的分数了...
我还使用断点来弄清楚这个bug出现在哪一行上,并且我发现只要我在那里改变了scoreLabel的文本,我的子视图就不会改变,即使该行是在该方法的结束。
我无法弄清楚如何更新分数+同时显示可能的解决方案。
任何人都可以帮助我吗?