0

I have created one button with images for different states in UITableView header

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

        self.filterButton = [UIButton buttonWithType:UIButtonTypeCustom];

        [self.filterButton setBackgroundImage:[UIImage imageNamed:@"g29_fctn_filter_default"] forState:UIControlStateNormal];
        [self.filterButton setBackgroundImage:[UIImage imageNamed:@"g31_fctn_filter_applied"] forState:UIControlStateSelected];
        [self.filterButton setBackgroundImage:[UIImage imageNamed:@"g30_fctn_filter_active"] forState:UIControlStateHighlighted];

        self.filterButton.frame = CGRectMake((self.myTableView.frame.size.width / 2) - 60, 10, 44, 32);
        [self.filterButton addTarget:self action:@selector(filterButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
        //imageView.contentMode = UIViewContentModeScaleAspectFit;
        [view addSubview:self.filterButton];
        return view;
    }

When i set button state to selected programmatically , i don't see UIButton image changes , it still show image which is set for forState:UIControlStateNormal

-(void) filterButtonPressed:(id)sender
{
   [self.filterButton setSelected:YES];
}
Ritika
  • 593
  • 1
  • 8
  • 21
  • 1
    you are not returning this view for header? and where are you calling setSelected to YES – johny kumar May 25 '17 at 08:30
  • i have just added relevant code for creating button.I did return view; also button is visible on UI.Also setSelected to YES is called on UIControlEventTouchUpInside action set for button.I have update my question to reflect these changes. – Ritika May 25 '17 at 09:28

0 Answers0