Iphone 第一次未切换的按钮

Iphone 第一次未切换的按钮,iphone,objective-c,Iphone,Objective C,我有一个按钮,第一次它没有切换时,它是取消选中 我必须按下两次,使其切换后,它工作良好。。。。 我的代码如下 -(IBAction)toggleAutomaticlogin:(id)sender { if([sender tag]==1) { [sender setImage:[UIImage imageNamed:@"ckbox_selected.png"] forState:UIControlStateNormal]; [sender setT

我有一个按钮,第一次它没有切换时,它是取消选中

我必须按下两次,使其切换后,它工作良好。。。。 我的代码如下

-(IBAction)toggleAutomaticlogin:(id)sender
{
    if([sender tag]==1)
    {
        [sender setImage:[UIImage imageNamed:@"ckbox_selected.png"] forState:UIControlStateNormal];
        [sender setTag:0];
    }           
    else if([sender tag]==0)
    {
        [sender setImage:[UIImage imageNamed:@"ckbox.png"] forState:UIControlStateNormal];
        [sender setTag:1];          
    }
}
第一次单击两次后,它工作正常…

请使用以下代码检查

-(IBAction)toggleAutomaticlogin:(id)sender
{
    if([sender tag]== 0)
    {
        [sender setImage:[UIImage imageNamed:@"ckbox_selected.png"] forState:UIControlStateNormal];
        [sender setTag:1];


    else if([sender tag]==1)
    {
        [sender setImage:[UIImage imageNamed:@"ckbox.png"] forState:UIControlStateNormal];
        [sender setTag:0];

    }
}
检查以下代码

-(IBAction)toggleAutomaticlogin:(id)sender
{
    if([sender tag]== 0)
    {
        [sender setImage:[UIImage imageNamed:@"ckbox_selected.png"] forState:UIControlStateNormal];
        [sender setTag:1];


    else if([sender tag]==1)
    {
        [sender setImage:[UIImage imageNamed:@"ckbox.png"] forState:UIControlStateNormal];
        [sender setTag:0];

    }
}

如果你不想弄乱标签,你也可以这样做

-(IBAction)toggleAutomaticlogin:(id)sender
{
    if([sender currentImage]== [UIImage imageNamed:@"ckbox.png"])
    {
        [sender setImage:[UIImage imageNamed:@"ckbox_selected.png"] forState:UIControlStateNormal];
    }
    else
    {
        [sender setImage:[UIImage imageNamed:@"ckbox.png"] forState:UIControlStateNormal];
    }
}

如果你不想弄乱标签,你也可以这样做

-(IBAction)toggleAutomaticlogin:(id)sender
{
    if([sender currentImage]== [UIImage imageNamed:@"ckbox.png"])
    {
        [sender setImage:[UIImage imageNamed:@"ckbox_selected.png"] forState:UIControlStateNormal];
    }
    else
    {
        [sender setImage:[UIImage imageNamed:@"ckbox.png"] forState:UIControlStateNormal];
    }
}

你可以试着取出你的else if,也可以确保你最初加载的图像是正确的,或者可能需要额外的按压才能将其更改为你所期望的。我认为@Ian是正确的。你应该检查标签,也可以打印出来。我刚刚注意到,你也从来没有关闭你的if语句。你可以尝试取出你的else-if,也可以确保你最初加载的图像是正确的,或者可能需要额外按一下才能改成你想要的。我认为@Ian是正确的。你应该检查标签,也可以打印出来。我刚刚注意到,你也从来没有关闭你的if语句。