我使用自定义单元格的表格视图。在这个自定义单元格中,我有一个类似的按钮 当我点击这个按钮时,我希望这个颜色变亮。我想知道如何为这个按钮上色,但我需要重新加载数据以便用颜色显示它。但是当我打电话给" table.reloadData()"有一个小滚动视图自动伸展。 有一种方法可以在没有reloadData()的情况下显示更改或禁用scrollView拉伸?
答案 0 :(得分: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
}