无法在uitableView中更改按钮图像

时间:2016-02-11 07:19:37

标签: ios swift uitableview uibutton

我正在创建一个类似于堆栈溢出的论坛应用。有一个UITableView显示问题的答案,每个单元格(包含答案)也包含一个“正确答案”勾选按钮。在任何给定时间,只能选择一个答案作为正确答案。正确答案标有绿色勾号,而其他答案标有灰色勾号(我有两个相同的图像,但颜色不同)。我试图设置它,所以当用户点击灰色的勾选按钮时,当前的绿色按钮变为灰色,而点击的灰色按钮变为绿色。

@IBOutlet weak var answeredTick: UIButton!

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    cell.answeredTick.tag = indexPath.row
}

@IBAction func answerTickPressed(sender: AnyObject) {
    guard let answeredTick = sender as? UIButton else { return }

    //indexOfOfficialAnswerId is the currently registered official ID
    if let buttonToMakeGrey = answeredTick.viewWithTag(self.indexOfOfficialAnswerId) as? UIButton {
        print("success!")
        buttonToMakeGrey.setImage(UIImage(named: "greyTick.png"), forState: UIControlState.Normal)

    } else {
        print("no success")
    }
}

然而,它始终打印“没有成功”。 index语句中indexOfOfficialAnswerId的值是正确的。我能够将灰色的answerTicks变为绿色,但我不能让绿色变灰。这是为什么?

更新:如果我点击绿色标记,我可以将绿色标记变为灰色,但如果我点击任何灰色标记,则不会显示绿色标记

2 个答案:

答案 0 :(得分:0)

您可以找到带绿色勾号的单元格:

cell.answeredTick.setImage(UIImage(named: "greyTick.png"), forState: UIControlState.Normal)

然后使用你的:

onestep = node.next

对不起Objective-C代码

答案 1 :(得分:0)

尝试在设置该按钮图像或将其状态更改为选中后重新加载该单元格。我猜这可能是问题所在。

相关问题