如何根据按钮图像按下按钮上的if条件?

时间:2011-09-26 12:13:49

标签: iphone

我试图在按钮click.i使用按钮作为复选标记的基础上使用一些逻辑,当我点击此复选标记按钮的图像更改为checked.png或unchecked.png.On该基础我使用此代码...

if([UIImage imageNamed:@"checkbox_ticked.png"])
    {
        isActiveStr=[arrayPickerData objectAtIndex:17];
        NSLog(@" is active value is %@ ",isActiveStr);
        isActiveStr=nil;

    }
    else 
    {
        NSLog(@"no vlaue send");
        isActiveStr=[[NSMutableString alloc]initWithString:@"1"];
        NSLog(@" is active value %@",isActiveStr);
    }

现在我不知道如何使用else condtion ...我运行这个代码,但它总是只运行codition.It永远不会进入其他conditon.I希望我的代码是真的它进入如果部分和条件是错误的,它进入了其他部分。我如何使用按钮的图像属性来检查条件。

5 个答案:

答案 0 :(得分:1)

你必须有一个标志变量来保存按钮的状态(选中/取消选中)。

BOOL checked;

而且,当您点击按钮时,您必须更新它。

- (void)onButtonTapped:(UIButton *)button {

    checked = !checked;
    ...
}

并改变你的if语句,

if (checked) {

    // The button is checked

} else {

     // The button is not checked
}

答案 1 :(得分:0)

试试这个if声明:

if ([[myButton imageForState:UIControlStateNormal] isEqual:[UIImage    imageNamed:@"checkbox_ticked.png"]]) {
...

但至于我这是一个糟糕的方法,最好有一些bool标志,表明按钮已被检查。

答案 2 :(得分:0)

if条件总是评估为true。您应该检查[myButton state]以查看它是否已启用。您可能需要根据需要添加IBOutlet或IBAction。

答案 3 :(得分:0)

在您的IBAction方法中使用它

if(!btnCheckbox.selected)
    {
        [btnCheckbox setImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"check-out_h" ofType:@"png"]] forState:UIControlStateNormal];
        btnCheckbox.selected=YES;
    }
    else {
        [btnCheckbox setImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"check-out" ofType:@"png"]] forState:UIControlStateNormal];
        btnCheckbox.selected=NO;
    }

答案 4 :(得分:0)

-(void)checkBoxIsHideNationWideClicked
{
    NSLog(@"nation wide button clicked");

    mybtn.selected=!mybtn.selected;
    defaultsCheckBox=[NSUserDefaults standardUserDefaults];

    if (mybtn.selected)
    {
        [defaultsCheckBox setValue:@"One" forKey:@"CheckBox"];

        NSLog(@" is active value is %@ is fetched succesfuly",hideNationWideStr);
        [CommonVar setHideNationwideData:hideNationWideStr];
        NSLog(@" is active value send to cmmon class %@ sent succesfuly",hideNationWideStr);
    }
    else
    {
        [defaultsCheckBox setValue:@"Two" forKey:@"CheckBox"];
        NSLog(@"no vlaue send");
        hideNationWideStr=[[NSMutableString alloc]initWithString:@"1"];
        [CommonVar setHideNationwideData:hideNationWideStr];
        NSLog(@" is active value send to cmmon class %@ sent succesfuly",hideNationWideStr);
    }
}