点击单元格内的按钮时如何显示更改?

时间:2016-03-07 17:15:43

标签: ios swift uibutton uitableview

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

1 个答案:

答案 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
}