我在我的应用中添加了今天的扩展程序。我稍微编辑了香草小部件,看起来像这样:
请注意UIButton标题为" Went 1st"。当它被按下时(准确地触及内部),它会触发此动作:
@IBAction func coinChanged(sender: UIButton) {
if sender.titleLabel?.text == "Went 1st" {
coin = true
sender.titleLabel!.text = "Went 2nd"
} else {
coin = false
sender.titleLabel!.text = "Went 1st"
}
}
它基本上在两个状态之间改变,相应地改变它的标题和变量。
这是问题所在 - 当我按下它时,它确实改变了它的标题,但立即将其更改回来,最终得到与最初相同的标题。我的第一个想法是在按下后动作被调用两次,但当我用 print 检查时,我发现它只被调用一次。有时打印甚至没有显示在控制台中,但这是一个不同的故事。
所以,这是一个问题。但是还有一个 - 当我按下按钮时,整个小部件都被放错了地方。要知道我的意思,请查看第一张图片(在任何按下之前的小部件),然后在此图片上(按下按钮后):
您可以看到边框现在位于TodayView的边缘。作为参考,以下是第一个分段控件的约束:
编辑:以下是" Went 1st / 2nd"按钮: 编辑2:请务必告诉我如果你选择了什么错误,那么下次我可以避免犯同样的错误
答案 0 :(得分:2)
问题是您不应该像这样设置按钮文本。标题标签主要用于设置文本大小,字体,颜色等。要设置标题,请使用以下内容:
define as computed
所以新的ib动作应如下所示:
sender.setTitle("Button Title", forState: UIControlState.Normal)