【问题标题】:Unable to change image of button in UItableViewCell on click点击时无法更改 UItableViewCell 中按钮的图像
【发布时间】:2016-02-14 08:22:55
【问题描述】:

我有一个包含多个单元格的 UITableView,每个单元格中都有一个按钮。第一个单元格中的按钮为绿色,其余为灰色。我想设置它,如果用户点击任何灰色按钮,第一个单元格中的按钮变为灰色,点击的按钮变为绿色。

@IBOutlet weak var answeredTick: UIButton!
cell.answeredTick.tag = indexPath.row


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

    if let buttonToMakeGrey = answeredTick.viewWithTag(0) as? UIButton {
        buttonToMakeGrey.setImage(UIImage(named: "greyTick.png"), forState: UIControlState.Normal)
    } else {
        print("no success")
    }

    if let buttonToMakeGrey = answeredTick.viewWithTag(answeredTick.tag) as? UIButton {
        buttonToMakeGrey.setImage(UIImage(named: "greenTick.png"), forState: UIControlState.Normal)
    } else {
        print("no success 1")
    }
}

上述方法始终无法将绿色勾号更改为灰色,并打印“不成功”。为什么会这样,我该如何解决?

【问题讨论】:

    标签: ios swift uitableview uibutton


    【解决方案1】:

    我认为 AnswerThick 没有标签 0 的视图。

    例如:您单击第 3 行按钮,“守卫让被回答的Tick”变量只有“2”视图的标签。它没有第一个单元格的 answersTick 实例。

    您可以通过 cellForRowAtIndexPath 访问第一个单元格,然后更改颜色。但是你应该小心 dequeueReusableCellWithIdentifier 单元格,你可以看到多个绿色按钮。

    简单的方法:您可以为单元格保存数组。当您按下按钮或单元格时,您可以使用数组更改必要的变量并重新加载 tableView。

    【讨论】:

      猜你喜欢
      • 2018-09-11
      • 1970-01-01
      • 1970-01-01
      • 2015-02-16
      • 2015-09-15
      • 2013-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多