gpt4 book ai didi

ios - 无法更改 uitableView 中的按钮图像

转载 作者:行者123 更新时间:2023-11-30 13:43:01 25 4
gpt4 key购买 nike

我正在制作一个类似于堆栈溢出的论坛应用程序。有一个 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 变成绿色,但我无法将绿色的一个变成灰色。这是为什么?

更新:看来,如果我单击绿色勾号,我可以将绿色勾号变为灰色,但如果我单击任何灰色勾号,则不能将绿色勾号变为灰色

最佳答案

您可以找到带有绿色勾号的单元格,如下所示:

NSIndexPath  *indexPath = [NSIndexPath indexPathForItem:self.indexOfOfficialAnswerId inSection:0];
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];

然后使用您的:

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

对 Objective-C 代码感到抱歉

关于ios - 无法更改 uitableView 中的按钮图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35333056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com