【发布时间】:2016-02-11 07:19:36
【问题描述】:
我正在制作一个类似于堆栈溢出的论坛应用程序。有一个 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")
}
}
但是它总是打印“没有成功”。 if 语句中 indexOfOfficialAnswerId 的值是正确的。我可以让灰色的 answerTicks 变成绿色,但我不能让绿色变成灰色。这是为什么呢?
更新:如果我点击绿色勾号,我似乎可以将绿色勾号设为灰色,但如果我点击任何灰色勾号则不行
【问题讨论】:
-
顺便说一句,您还必须在 else 块中设置其他图像
-
什么意思? @iAnurag
标签: ios swift uitableview uibutton