今日小工具中奇怪的UIButton行为

时间:2016-01-03 09:24:58

标签: ios swift today-extension

我在我的应用中添加了今天的扩展程序。我稍微编辑了香草小部件,看起来像这样:

enter image description here

请注意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 检查时,我发现它只被调用一次。有时打印甚至没有显示在控制台中,但这是一个不同的故事。

所以,这是一个问题。但是还有一个 - 当我按下按钮时,整个小部件都被放错了地方。要知道我的意思,请查看第一张图片(在任何按下之前的小部件),然后在此图片上(按下按钮后):

enter image description here

您可以看到边框现在位于TodayView的边缘。作为参考,以下是第一个分段控件的约束:

enter image description here

编辑:以下是" Went 1st / 2nd"按钮: 编辑2:请务必告诉我如果你选择了什么错误,那么下次我可以避免犯同样的错误

enter image description here

1 个答案:

答案 0 :(得分:2)

问题是您不应该像这样设置按钮文本。标题标签主要用于设置文本大小,字体,颜色等。要设置标题,请使用以下内容:

define as computed

所以新的ib动作应如下所示:

sender.setTitle("Button Title", forState: UIControlState.Normal)