2016-02-14 73 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。