This question is an exact duplicate of:
- Tableviewcell button
It would be great if someone can help to achieve the below requirement. In the tableviewcell, i have horizontal scrollview which will have uibuttons added dynamically. User can select multiple buttons from one row, but cannot select button from different rows. For e.g., If I have already selected buttons(i should be able to select one or more buttons) in row1, and when i tap button in row2, selected buttons in row1 should be deselected and the button which i tapped in row2 should be selected.
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
cell.timeslotScrollView.contentSize = CGSizeMake(500, 0);
cell.timeslotScrollView.scrollEnabled = YES;
cell.timeslotScrollView.showsHorizontalScrollIndicator = NO;
UIButton *button = [[UIButton alloc]init];
button.frame = CGRectMake(0, 0, 68, 35);
[button setTitle:@"abc" forState:UIControlStateNormal];
button.layer.borderWidth = 2;
button.layer.borderColor = [UIColor colorWithRed:0.23 green:0.71 blue:0.29 alpha:1.0].CGColor;
button.layer.cornerRadius = 3;
button.userInteractionEnabled = YES;
[button setTitleColor:[UIColor colorWithRed:0.23 green:0.71 blue:0.29 alpha:1.0] forState:UIControlStateNormal];
[button setTag:indexPath.row];
[button addTarget:self action:@selector(didTap:) forControlEvents:UIControlEventTouchUpInside];
UIButton *button1 = [[UIButton alloc]init];
button1.frame = CGRectMake(button.frame.origin.x+68+buttonSpace, 0, 68, 35);
[button1 setTitle:@"5 pm" forState:UIControlStateNormal];
[button1 setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];
button1.layer.borderWidth = 2;
button1.layer.borderColor = [UIColor grayColor].CGColor;
button1.layer.cornerRadius = 3;
button1.userInteractionEnabled = YES;
[button1 setTag:indexPath.row];
[button1 addTarget:self action:@selector(didTap:) forControlEvents:UIControlEventTouchUpInside];
[cell.timeslotScrollView addSubview:button];
[cell.timeslotScrollView addSubview:button1];
}
return cell;
}
-(void)didTap:(id)sender
{
UIButton *pressedButton = (UIButton *)sender;
if (pressedButton.tag != selectedButton ) {
[sender setBackgroundColor:[UIColor greenColor]];
selectedButton = pressedButton.tag;
}
else{
[sender setBackgroundColor:[UIColor clearColor]];
}
}