2011-09-01 49 views
0

我有两个UIButtons。它们表现得像复选框(两个按钮都可以一次选择)。但我想只有一个按钮可以选择在(如单选按钮)。我该怎么做? 这是我如何实现复选框按钮功能。如何实现单选按钮行为?

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

也许,使用'UISegmentedControl'会更好? – kpower

+0

阅读此博客.... http://www.developers-life.com/radio-buttons-in-iphone-application.html它可以帮助你... – PJR

回答

1

虽然我还没有检查,只是给出修改后的代码试试。

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

我通常实施单选按钮的方法是:

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

    //do something with 'which' 

} 
相关问题