2016-05-15 205 views
0

我有UITableView作爲SWRevealViewController的一部分用作滑動菜單。UITableView:突出顯示最後一個單元格,但其他單元格也突出顯示

我想選擇在UITableView中的最後一個單元格並執行以下操作:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let customCell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! IGAWindAloftMenuTableViewCell 

    ... 


    let sectionsAmount = tableView.numberOfSections 
    let rowsAmount = tableView.numberOfRowsInSection(indexPath.section) 

    if (indexPath.section == sectionsAmount - 1 && indexPath.row == rowsAmount - 1) 
    { 
     customCell.backgroundColor = UIColor.yellowColor() 
    } 

    return customCell 
} 

當我滾動一路下跌,它的工作原理 - 最後一個單元格被突出顯示。但是,當我上下滾動時,表格中間的其他單元格也會突出顯示。

有什麼辦法可以預防它嗎?

謝謝!

回答

3

必須撤消在if分枝爲所有其他細胞進行了更改:

if (indexPath.section == sectionsAmount - 1 && indexPath.row == rowsAmount - 1) { 
    customCell.backgroundColor = UIColor.yellowColor() 
} else { 
    customCell.backgroundColor = UIColor.whiteColor() // or whatever color 
} 

的原因不想要的副作用是細胞的重用。一個單元格被創建,然後它被用作最後一個單元格,然後它離開屏幕並在其他地方重用。它仍包含已更改的顏色信息,但不再位於相應的位置。

+0

非常感謝!這很好。乾杯。 –

相關問題