-1
我正在使用自定義單元格的表格視圖。在這個自定義單元格中我有一個像按鈕 當我點擊這個按鈕,我想讓這個變色。我想如何爲這個按鈕着色,但我需要重新加載數據以用顏色顯示。但是當我調用「table.reloadData()」時,會自動伸縮一些滾動視圖。 有沒有一種方法來顯示沒有reloadData()更改或禁用scrollView拉伸?如何在點擊單元格內的按鈕時顯示更改?
我正在使用自定義單元格的表格視圖。在這個自定義單元格中我有一個像按鈕 當我點擊這個按鈕,我想讓這個變色。我想如何爲這個按鈕着色,但我需要重新加載數據以用顏色顯示。但是當我調用「table.reloadData()」時,會自動伸縮一些滾動視圖。 有沒有一種方法來顯示沒有reloadData()更改或禁用scrollView拉伸?如何在點擊單元格內的按鈕時顯示更改?
您是否嘗試重新加載您點擊過的行?
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
}
它不工作...我要和下來查看更改...... –
如何奇數向上滾動。你確定你有正確的'indexPath'嗎?如果您對單元格內的按鈕按下作出反應,您將不會以'indexPath'開始 - 您需要以某種方式從按鈕中獲取 - 通過'tag'屬性?如果你對一個indexPath進行硬編碼會發生什麼,所以無論你按什麼按鈕,它都會更新一個特定的行,看看它是如何工作的? – Russell
我從那個tableRow裏面的按鈕位置獲取indexPath ... –