iPhone应用程序中的单选按钮

时间:2009-03-19 15:28:51

标签: iphone

我必须在我的iPhone应用程序中添加单选按钮。为此,我有一个圆形的单选按钮图像。我可以将该图像添加为子视图吗?我可以在UIImage中添加touchupinside事件吗?

12 个答案:

答案 0 :(得分:19)

iPhone应用程序没有单选按钮。 “类似iPhone”的方法是使用选择器视图,或者在分组表视图中有几行,并在所选行上使用检查附件。

如果由于某种原因你真的觉得需要有单选按钮,请使用按钮类型为自定义的UIButton。将空白圆圈设置为“正常”控制状态的图像,将实心圆圈设置为“选定”状态的图像。

答案 1 :(得分:5)

试试UISegmentedControl。它的行为类似于单选按钮 - 提供一系列选项,让用户选择1.

答案 2 :(得分:2)

IBOutlet UIButton *checkboxButtonMale; 

IBOutlet UIButton    *checkboxButtonFmale;

  checkboxButtonFmale.tag = 3;
  checkboxButtonMale.tag = 2; 

(IBAction)checkboxGenderChecked:(id)sender{ 


    UIButton *selectedButton = (UIButton *)sender;
    UIButton    *toggledButton; 

    if (selectedButton.tag == 2 ) { 
        toggledButton =    checkboxButtonFmale;
    } 
    else {      
        toggledButton = checkboxButtonMale; 
    }   [toggledButton    setSelected:NO]; 
    [sender setSelected:YES];
       }

答案 3 :(得分:1)

您还可以创建一个UIWebView,加载到使用单选按钮的HTML,然后使用UIWebView委托方法监视无线电值。

这是一种黑客行为,但在某些情况下,它正是所要求的。

答案 4 :(得分:1)

您可以使用UIButton的数组,然后使用我的GSRadioButtonSetController类来处理逻辑(实质上,确保只能选择一个按钮)。有关样本用法,请参阅GitHub上的README。

答案 5 :(得分:0)

您可以尝试使用UIImageView类,它只是将UIImage包装在UIView容器中。它支持touchesBegan / Canceled事件,我认为这是合适的。

您也可以考虑不使用正如您所描述的真正的单选按钮设置,而是使用更像iPhone的方法 - 例如,使用UITableView,其中包含与您的收音机选择对应的单元格以及切换选中/触摸时未经检查。有关示例,请参阅Apple iPhone开发站点上的TouchCells示例。

答案 6 :(得分:0)

如果您只有“是”或“否”选项,请使用UISwitch。

对于多种类型,请使用以下代码:

-(void)buttonPressed:(id)sender{

if([sender isSelectd])

//here change button image and set

[sender setSelected:NO];

}else{
//here change button image and set

[sender setSelected:YES];

}

请记住,当您创建按钮时,不要忘记将setSelected设置为NO。

答案 7 :(得分:0)

iPhone应用程序中没有任何RadioButton控件。

虽然您可以查看以下链接以获取RadioButton。

这里我们放置了两个图像来代替RadioButtons。

http://www.developers-life.com/radio-buttons-in-iphone-application.html

享受编码........

答案 8 :(得分:0)

我做了类似的事情并且有效:

- (IBAction)tickbuttonClicked:(id)sender
{

UIButton *selectedButton = sender;
UIImage *ticked   = [UIImage imageNamed:@"tickbox_yes3.png"];   
UIImage *unticked = [UIImage imageNamed:@"tickbox_no3.png"];    

    //untick active box
    if((activetag>-1)&&(activetag!=[sender tag])){
        UIButton *thisButton = (UIButton *)[self.view viewWithTag:activetag];
        thisButton.backgroundColor  = [UIColor colorWithPatternImage:unticked];
    }

 //tick sender
 if ([sender tag]!=activetag)
 {
    selectedButton.backgroundColor = [UIColor colorWithPatternImage:ticked]; 
    activetag=[sender tag];   
    [selectedButton setSelected:YES];

 }

}

答案 9 :(得分:0)

答案 10 :(得分:0)

//定义按钮的属性

声明Unchaked Image

   - (void)viewDidLoad
   {
       [ButtonChaked setBackgroundImage:[UIImage imageNamed:@"UnChacked.png"] forState:UIControlStateNormal];
    }

Chaked Image

 - (IBAction)ButtonChaked:(id)sender
 {
    if (ButtonChaked.selected ==YES)
    {
      [ButtonChaked setBackgroundImage:[UIImage imageNamed:@"UnChacked.png"] forState:UIControlStateSelected];

    ButtonChaked.selected =NO;

 }
 else
 {
    [ButtonChaked setBackgroundImage:[UIImage imageNamed:@"Chaked.png"] forState:UIControlStateNormal];
    ButtonChaked.selected = YES;

 }


}

真的用过了

答案 11 :(得分:0)

我刚刚向Cocoapods pod "DLRadioButton"发布了一个iOS单选按钮控件,有关文档和示例,请转到GitHub。附件是此控件的屏幕截图。enter image description here