选中cell内容发生变化问题

创建了自定义cell并且添加了UIButton。点击按钮时按钮的图片会变化。

-(IBAction)btnInfoPressed:(id)sender
{
    [btnInfo setSelected:YES];
}

上面的方法放在自定义cell类中。有时向下滚动几个cell后,有一些没点击的按钮的图片也发生变化。实际上我并没有选它。

这个cellforrowatindexpath方法:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"CustomCell";
CustomCell *c = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];

if (c == nil)
{
    c = [[[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil] objectAtIndex:0];
}
c.selectionStyle = UITableViewCellSelectionStyleNone;
return c;
}

应该怎么办?

尝试在CustomCell中再自定义一个属性来保存按钮是否被选中的状态

@interface CustomCell:UITableViewCell
@property (nonatomic) BOOL isSelected;
@end

@implementation CustomCell

-(void)layoutSubviews {
     if (_isSelected) {
          [yourbutton setSelected:YES];
     }
}

-(void)setIsSelected:(BOOL)isSelected {
    _isSelected=isSelected;
    [self setNeedslayout];
}

@end