2016-03-07 53 views
-1

我正在使用自定義單元格的表格視圖。在這個自定義單元格中我有一個像按鈕 當我點擊這個按鈕,我想讓這個變色。我想如何爲這個按鈕着色,但我需要重新加載數據以用顏色顯示。但是當我調用「table.reloadData()」時,會自動伸縮一些滾動視圖。 有沒有一種方法來顯示沒有reloadData()更改或禁用scrollView拉伸?如何在點擊單元格內的按鈕時顯示更改?

回答

0

您是否嘗試重新加載您點擊過的行?

tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Top 

對於某些情況,您應該不必重新加載。如果你只想改變單元的背景顏色,你可以這樣做。現在我注意到,你在Objective-C工作,我的例子是Swift - 希望它仍然不夠清楚:-)

首先定義一個定製的細胞 - 我的是一個簡單的只有一個標籤和一個按鈕,你就已經有類似的東西。我不知道,如果你需要更改單元格或按鈕的顏色,所以我做了兩個

import UIKit 

class myCell: UITableViewCell 
{ 
    @IBOutlet weak var labelTitle: UILabel! 
    @IBOutlet weak var cmdButton: UIButton! 

    @IBAction func cmdButtonClicked(sender: AnyObject) 
    { 
     self.backgroundColor = UIColor.redColor() 
     cmdButton.backgroundColor = UIColor.blueColor() 

     print("click \(sender.tag)") 
    } 
} 

如果您確實需要保持其的按鈕被點擊的軌道,你將需要設置標籤中cellForRowAtIndexPath - 但你甚至可能不會需要這個

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
{ 
    var cell:myCell = tableView.dequeueReusableCellWithIdentifier("Cell") as! myCell 

    cell.labelTitle.text = data[indexPath.row] 
    cell.cmdButton.tag = indexPath.row 

    return cell 
} 
+0

它不工作...我要和下來查看更改...... –

+0

如何奇數向上滾動。你確定你有正確的'indexPath'嗎?如果您對單元格內的按鈕按下作出反應,您將不會以'indexPath'開始 - 您需要以某種方式從按鈕中獲取 - 通過'tag'屬性?如果你對一個indexPath進行硬編碼會發生什麼,所以無論你按什麼按鈕,它都會更新一個特定的行,看看它是如何工作的? – Russell

+0

我從那個tableRow裏面的按鈕位置獲取indexPath ... –

相關問題