2015-12-10 84 views
0

我想更改自定義UITableViewCell中的圖像,具體取決於它是否被選中。 因此,當用戶選擇一行時,必須更改兩行中的圖像(當前選擇的和要選擇的)。 調用reloadDatareloadRowsAtIndexPathsdidSelectRowAtIndexPath不起作用,因爲它取消選擇當前選定的行,我不想發生。 從willDeselectRowAtIndexPathwillSelectRowAtIndexPath調用reloadData也會導致同樣的問題。 任何人都知道這個解決方案?選中時更改UITableViewCell中的圖像

+0

能否請您告訴我您的編碼? – user3182143

+0

我會幫你的。 – user3182143

+0

沒關係。我想出了一個解決方案;) – user5664685

回答

0

您是否試圖以編程方式選擇cellForRowAtIndexPath中的行,該行基於指示所選行的存儲屬性?

我想一個辦法,你仍然使用reloadData,或reloadRowsAtIndexPathsdidSelectRowAtIndexPath但首先選定行保存的屬性,以便您可以手動將其設置爲選擇在小區重繪。

例如:

var selectedRow:NSIndexPath? = nil 

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    selectedRow = indexPath 
    tableView.reloadData() // or reload a specific row 
} 

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("TableViewCellReuseIdentifier") 
    if (indexPath == selectedRow) { 
     cell!.selected = true 
    } else { 
     cell!.selected = false 
    } 
} 
相關問題