Iphone Objective-C中的图像复选框

Iphone Objective-C中的图像复选框,iphone,objective-c,Iphone,Objective C,我正在为iphone制作一个表单,我想要一个女性/男性按钮选择。按钮上最初写有一个M和一个F,当您选择其中一个时,图像会翻转过来。我设法在按下按钮时显示图像。我遇到的问题是,它们能够同时显示,但当其中一个启用时,另一个图像应该消失。我试图纠正它,现在程序崩溃了。 实施文件: -(IBAction) setCheckBox2: (id) sender { UIImage *selected = [UIImage imageNamed:@"female.tiff"]; // UIIm

我正在为iphone制作一个表单,我想要一个女性/男性按钮选择。按钮上最初写有一个M和一个F,当您选择其中一个时,图像会翻转过来。我设法在按下按钮时显示图像。我遇到的问题是,它们能够同时显示,但当其中一个启用时,另一个图像应该消失。我试图纠正它,现在程序崩溃了。 实施文件:

-(IBAction) setCheckBox2: (id) sender
{
    UIImage *selected = [UIImage imageNamed:@"female.tiff"];
    // UIImage *notSelected = [UIImage imageNamed:@"male.tiff"];

    if (sender == selected)

    {
        [sender setImage:selected];
    }
    else
    {

        [sender setImage:NO];  
    }
然后我要为被选中的男性形象创建另一个函数。有什么建议吗


谢谢

您正在测试
sender==selected
,因此意味着
sender
属于
UIImage
类型,然后将
setImage:
发送到
sender
。。。以自身作为参数

这没有道理。我想你想做的一定是:

-(IBAction) setCheckBox2: (UIImageView *) sender
{
    UIImage *selected = [UIImage imageNamed:@"female.tiff"];
    UIImage *notSelected = [UIImage imageNamed:@"male.tiff"];

    if (sender.image == selected)

    {
        [sender setImage:notSelected];
    }
    else
    {

        [sender setImage:selected];  
    }
}

为什么不为这两种状态使用
default
(对于未选中)和
selected
(对于选中)属性。这样做的好处是您不必编写大量代码。确定设置所选图像和默认图像

currentSelectedButton
获取
UIButton
global
变量。 将
ui按钮
与名为
genderButtonClicked
的单个
iActionMethod
连接起来(或者您需要)。 现在


我认为这将解决您的问题

我建议您使用UISegmentedBar。
-(IBAction)genderButtonClicked:(UIButton)sender
{
    if(currentSelectedButton)
        [currentSelectedButton setSelected:FALSE];
    currentSelectedButton = sender;
    [currentSelectedButton setSelected:TRUE];
}