0

Here is my code

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

    [button setImage:[UIImage imageNamed:@"Add_plus_iCon_iphone_4s"] forState:UIControlStateNormal];

    button.frame = CGRectMake(sectionView.frame.size.width-10, 10, 20, 20);

    [button addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside];

    [sectionView addSubview:button];

}

- (void)btnAction:(UIButton *)sender

{

int i = [sender.titleLabel.text intValue];
NSNumber *numb;
if(i == 0)

{
    numb = [NSNumber numberWithBool:NO];
    sender.titleLabel.text = @"1";
    [sender setImage:[UIImage imageNamed:@"Add_minus_iCon_iphone_4s"] forState:UIControlStateNormal];
    [sender setImage:[UIImage imageNamed:@"Add_plus_iCon_iphone_4s"] forState:UIControlStateHighlighted];
}
else
{
    numb = [NSNumber numberWithBool:YES];
    sender.titleLabel.text = @"0";
    [sender setImage:[UIImage imageNamed:@"Add_plus_iCon_iphone_4s"] forState:UIControlStateNormal];
    [sender setImage:[UIImage imageNamed:@"Add_minus_iCon_iphone_4s"] forState:UIControlStateHighlighted];
}
}
NSNoob
  • 5,548
  • 6
  • 41
  • 54
srinitha
  • 119
  • 10

2 Answers2

0

First thing set images of button for both state (UIControlStateNormal, UIControlStateSelected) in ViewDidLoad and then do [cell.btnSelect setSelected:YES]; or [cell.btnSelect setSelected:NO]; as per requirement.

Otherwise change image for UIControlStateNormal when button tapped.

dev_m
  • 796
  • 6
  • 12
-1

you are creating UIButton each time header load, which cause your button to reset, 1 way is to design cell in storyborad or xib and use reference, Also have a DataSource to keep track of values e.g.

 if([dataSouce containsObject:yourItem]){
        //selected button image
        [cell.btnSelect setSelected:YES];
    }
    else{
        //unselected button image

        [cell.btnSelect setSelected:NO];

    }
Arslan Asim
  • 1,232
  • 1
  • 11
  • 29