mercredi 5 août 2015

Radio buttons get unselected while scrolling UITableView


I have two radio buttons on UITableView Cell.I am able to select one of them while scrolling UITableView down but when I scroll tableview up all radio buttons get unselected. After scrolling also I want to keep them selected but I am not able to do that....So please anyone having solution help me. Thank you

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentifier = @"cell";
    customCell *cell = (customCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if (cell == nil)
    {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"customCell" owner:self options:nil];
        cell = [nib objectAtIndex:0];

    }

    leftBtnclick = [UIButton buttonWithType:UIButtonTypeCustom];
    leftBtnclick.tag=999;
    [leftBtnclick setImage:[UIImage imageNamed:@"unchecked.png"] forState:UIControlStateNormal];
    [leftBtnclick setImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateSelected];

    if (screenHeight == 667)
    {
        [leftBtnclick setFrame:CGRectMake(50, 59, 30, 30)];
     }
    else if(screenHeight == 480)
    {
        [leftBtnclick setFrame:CGRectMake(50, 40, 30, 30)];

    }

    [leftBtnclick addTarget:self action:@selector(leftTickBtnClicked:) forControlEvents:UIControlEventTouchUpInside];
    [cell.leftOptBtn addTarget:self action:@selector(leftTickBtnClicked:) forControlEvents:UIControlEventTouchUpInside];
    [cell.contentView addSubview:leftBtnclick];

    rightBtnclick = [UIButton buttonWithType:UIButtonTypeCustom];
    rightBtnclick.tag=1000;
    [rightBtnclick setImage:[UIImage imageNamed:@"unchecked.png"] forState:UIControlStateNormal];
    [rightBtnclick setImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateSelected];

    if (screenHeight == 667)
    {
       [rightBtnclick setFrame:CGRectMake(180, 59, 30, 30)];
    }
    else if(screenHeight == 480)
    {
        [leftBtnclick setFrame:CGRectMake(50, 40, 30, 30)];

    }

    [rightBtnclick setFrame:CGRectMake(180, 59, 30, 30)];
    [rightBtnclick addTarget:self action:@selector(rightTickBtnClicked:) forControlEvents:UIControlEventTouchUpInside];
    [cell.rightOptBtn addTarget:self action:@selector(rightTickBtnClicked:) forControlEvents:UIControlEventTouchUpInside];
    [cell.contentView addSubview:rightBtnclick];

    cell.numberLbl.text = [numberArray objectAtIndex:indexPath.row];
    cell.questionLbl.text = [questionArray objectAtIndex:indexPath.row];
    [cell.leftOptBtn setTitle:[leftOptionArray objectAtIndex:indexPath.row] forState:UIControlStateNormal];
    [cell.rightOptBtn setTitle:[rightOptionArray objectAtIndex:indexPath.row] forState:UIControlStateNormal];
    return cell;
}

-(void)leftTickBtnClicked:(id)sender
{
    UIButton *leftTickBtn=(UIButton *)sender;
    leftTickBtn.selected=!leftTickBtn.selected;
    for(UIView *vw in [[sender superview]subviews])
    {
        if([vw isKindOfClass:[UIButton class]] && vw.tag==1000)
        {
            UIButton *rightTickBtn=(UIButton *)vw;

            if(leftTickBtn.selected)
            {
                rightTickBtn.selected=NO;
            }
            else
            {
                rightTickBtn.selected=YES;
            }

        }
    }

}

-(void)rightTickBtnClicked:(id)sender
{

    UIButton *rightTickBtn=(UIButton *)sender;
    rightTickBtn.selected=!rightTickBtn.selected;


    for(UIView *vw in [[sender superview]subviews])
    {
        if([vw isKindOfClass:[UIButton class]] && vw.tag==999)
        {
            UIButton *leftTickBtn=(UIButton *)vw;

            if(rightTickBtn.selected)
            {
                leftTickBtn.selected=NO;
            }
            else
            {
                leftTickBtn.selected=YES;
            }

        }
    }


}



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire