我知道这是一个常见的问题。但是经过广泛搜索后我还没有找到答案,所以我在这里问。
我有一个 UITableViewController ,其中每一行都是 UITableViewCell 子类的一个实例。每个UITableViewCell子类都有一个 UIButton 。最初所有UIButton都具有相同的图像(只是一个蓝色圆圈)。点击按钮只会导致该按钮的图像发生变化(例如红色圆圈)。这部分很简单:只需处理UITableViewCell子类内的点击并切换图像即可。
这是一个具有挑战性的部分:当我点击另一个蓝色按钮时,我想要当前红色的按钮(如果有的话)将其图像切换回蓝色。 如何判断此按钮切换图像?
我在哪里跟踪当前红色的按钮?
答案 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];
}