2011-09-01 2 views
0

J'ai deux UIButtons. ils se comportent comme des cases à cocher (les deux boutons peuvent sélectionner à la fois). Mais je veux seulement un bouton peut sélectionner à la fois (comme les boutons radio). Comment puis-je le faire? Ce comment j'applique la fonctionnalité de bouton de case à cocher.comment implémenter le comportement du bouton radio?

if ([btnAnswer1 isSelected]) { 
     [btnAnswer1 setBackgroundImage:[UIImage imageNamed:@"checkbox_unchecked.png"] forState:UIControlStateNormal]; 
     [btnAnswer1 setSelected:NO]; 

    }else { 
     [btnAnswer1 setBackgroundImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateSelected]; 
     [btnAnswer1 setSelected:YES]; 
    } 



    if ([btnAnswer2 isSelected]) { 
     [btnAnswer2 setBackgroundImage:[UIImage imageNamed:@"checkbox_unchecked.png"] forState:UIControlStateNormal]; 
     [btnAnswer2 setSelected:NO]; 
    }else { 
     [btnAnswer2 setBackgroundImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateSelected]; 
     [btnAnswer2 setSelected:YES]; 
    } 
+1

Peut-être, il vaudra mieux utiliser 'UISegmentedControl'? – kpower

+0

lire ce blog .... http://www.developers-life.com/radio-buttons-in-iphone-application.html il peut vous aider ... – PJR

Répondre

1

Bien que je vérifie pas, essayez avec le code modifié donné.

if ([btnAnswer1 isSelected]) 
    { 
     [btnAnswer1 setBackgroundImage:[UIImage imageNamed:@"checkbox_unchecked.png"] forState:UIControlStateNormal]; 
     [btnAnswer1 setSelected:NO]; 
     selected = FALSE; 
     [btnAnswer2 setBackgroundImage:[UIImage imageNamed:@"checked.png"] forState :UIControlStateSelected]; 
     [btnAnswer2 setSelected:YES]; 
    } 
    else 
    { 
     [btnAnswer1 setBackgroundImage:[UIImage imageNamed:@"checked.png"] forState: UIControlStateSelected]; 
     [btnAnswer1 setSelected:YES]; 
     [btnAnswer2 setBackgroundImage:[UIImage imageNamed:@"checkbox_unchecked.png"] forState: UIControlStateNormal]; 
     [btnAnswer2 setSelected:NO]; 
     selected = TRUE; 
    } 

    if ([btnAnswer2 isSelected]) 
    { 
     [btnAnswer2 setBackgroundImage:[UIImage imageNamed:@"checkbox_unchecked.png"] forState: UIControlStateNormal]; 
     [btnAnswer2 setSelected:NO]; 
     [btnAnswer1 setBackgroundImage:[UIImage imageNamed:@"checked.png"] forState: UIControlStateSelected]; 
     [btnAnswer1 setSelected:YES]; 
    } 
    else 
    { 
     [btnAnswer2 setBackgroundImage:[UIImage imageNamed:@"checked.png"] forState: UIControlStateSelected]; 
     [btnAnswer2 setSelected:YES]; 
     [btnAnswer1 setBackgroundImage:[UIImage imageNamed:@"checkbox_unchecked.png"] forState: UIControlStateNormal]; 
     [btnAnswer1 setSelected:NO]; 
    } 
2

La façon dont je mets en œuvre habituellement des boutons radio est:

-(void) radioButtonWasSelected:(RadioButton*) which 
{ 
    //set all radio buttons to unselected 
    //set 'which' to selected 

    //do something with 'which' 

}