0

我正在为 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];  
    }

然后我要为被选中的男性图像创建另一个函数。有什么建议么?

谢谢!

4

2 回答 2

0

您正在测试它,sender == selected因此暗示它sender是 type 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];  
    }
}
于 2013-06-09T10:38:44.973 回答
0

为什么不为这两种状态使用default(for not selected) 和selected(for selected) 属性。这样做的好处是您不必编写一堆代码。确定设置选定图像和默认图像。

取一个for的global变量。将两者与单个命名(或您想要的)连接。现在UIButtoncurrentSelectedButtonUIButtonIBActionMethodgenderButtonClicked

-(IBAction)genderButtonClicked:(UIButton)sender
{
    if(currentSelectedButton)
        [currentSelectedButton setSelected:FALSE];
    currentSelectedButton = sender;
    [currentSelectedButton setSelected:TRUE];
}

我认为这将解决您的问题

于 2013-06-09T12:56:30.663 回答