在UITableViewController中的UITableViewCell之间进行通信

时间:2011-08-02 18:40:09

标签: ios uibutton communication uitableview

我知道这是一个常见的问题。但是经过广泛搜索后我还没有找到答案,所以我在这里问。

我有一个 UITableViewController ,其中每一行都是 UITableViewCell 子类的一个实例。每个UITableViewCell子类都有一个 UIButton 。最初所有UIButton都具有相同的图像(只是一个蓝色圆圈)。点击按钮只会导致该按钮的图像发生变化(例如红色圆圈)。这部分很简单:只需处理UITableViewCell子类内的点击并切换图像即可。

这是一个具有挑战性的部分:当我点击另一个蓝色按钮时,我想要当前红色的按钮(如果有的话)将其图像切换回蓝色。 如何判断此按钮切换图像?

我在哪里跟踪当前红色的按钮?

1 个答案:

答案 0 :(得分:0)

在UITableViewCell子类中实现- (void)setSelected:(BOOL)selected animated:(BOOL)animated方法。选择单元格后,将UIButton图像设为红色;否则,将UIButton图像设置为蓝色。选择新单元格时会调用此方法,因此始终只有一个红色单元格。

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
    if(selected)
    {
        [myButton setImage:RED_IMAGE forState:UIControlStateNormal]; //or however else you want to change your button's image
    }else
    {
        [myButton setImage:BLUE_IMAGE forState:UIControlStateNormal];
    }

    [super setSelected:selected animated:animated];
}