Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios “今日”小部件中奇怪的UIButton行为_Ios_Swift_Today Extension - Fatal编程技术网

Ios “今日”小部件中奇怪的UIButton行为

Ios “今日”小部件中奇怪的UIButton行为,ios,swift,today-extension,Ios,Swift,Today Extension,我在我的应用程序中添加了“今日”扩展。我稍微编辑了一下vanilla小部件,使其看起来像这样: 请注意标题为“先走”的UIButton。当它被按下时(确切地说是在内部触摸),它会触发此动作: @IBAction func coinChanged(sender: UIButton) { if sender.titleLabel?.text == "Went 1st" { coin = true sender.titleLabel!.text = "Went

我在我的应用程序中添加了“今日”扩展。我稍微编辑了一下vanilla小部件,使其看起来像这样:

请注意标题为“先走”的UIButton。当它被按下时(确切地说是在内部触摸),它会触发此动作:

@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的最边缘。以下是第一个分段控件的约束条件,以供参考:

编辑:以下是“第一次/第二次”按钮的限制条件: 编辑2:如果你投了反对票,一定要告诉我出了什么问题,这样下次我就可以避免犯同样的错误


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

sender.setTitle("Button Title", forState: UIControlState.Normal)
因此,新的ib操作应该如下所示:

@IBAction func coinChanged(sender: UIButton) {
    if sender.titleLabel?.text == "Went 1st" {
        coin = true
        sender.setTitle("Went 2nd", forState: UIControlState.Normal)
    } else {
        coin = false
        sender.setTitle("Went 1st", forState: UIControlState.Normal)
    }
}

谢谢,现在可以修改文本了。我想知道为什么会这样——我将试着看一下文档。那么尺寸变化的问题呢?第二张图片。你介意发布结果按钮的约束条件吗?我想这是因为UIButton被重置了,如果主要操作是triggeret。至少是标题。第二个错误很奇怪,你是否设置了其他按钮属性。不,没有。我甚至删除了按钮,从头开始制作,但也没用。还要注意的是,没有其他按钮可以做到这一点,只有“第一个”按钮。