2016-02-14 65 views
0

我有一个UITableView与多个单元格,并在每个单元格中是一个按钮。第一个单元格中的按钮为绿色,其余为灰色。我想设置它,以便如果用户点击任何灰色按钮,第一个单元格中的按钮变为灰色,并且点击的按钮变为绿色。无法更改UItableViewCell上的按钮图像点击

@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") 
    } 
} 

上面的问题总是无法将绿色标记更改为灰色,并打印出“不成功”。为什么这个,我该如何解决它?

回答

0

我觉得answeredThick没有考虑到与标签0

例如:你点击第三排按钮和“卫士让answeredTick”变量只对“2”视图标签。它没有第一个单元的应答实例。

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

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