Objective-C: UIButton的图像不会改变

4
我正在尝试更改UIButton的图片,这里的所有"switches"都是UIButtonIBOutlets
-(IBAction)userselect:(id)sender
{
    UIButton *btnTagcatcher =(UIButton * )sender;
 if(btnTagcatcher.tag == 1)
    {
        if(btnimgflag1 == 0)
            {
                NSString* path  = [[NSBundle mainBundle] pathForResource:@"check-box-withtick-1n1" 
                                                                  ofType:@"png"];
                UIImage *image  = [[UIImage alloc] initWithContentsOfFile:path];
                [switch1 setImage:image forState:UIControlStateNormal];
                NSString* path1  = [[NSBundle mainBundle] pathForResource:@"check-box-withouttickn1" 
                                                                   ofType:@"png"];
                UIImage *image1  = [[UIImage alloc] initWithContentsOfFile:path1];
                [switch2 setImage:image1 forState:UIControlStateNormal];
                [switch3 setImage:image1 forState:UIControlStateNormal];
                [switch4 setImage:image1 forState:UIControlStateNormal];
                btnimgflag2 = 0;
                btnimgflag3 = 0;
                btnimgflag4 = 0;


                btnimgflag1 = 1;
            }
            else if(btnimgflag1 == 1)
            {
        NSString* path  = [[NSBundle mainBundle] pathForResource:@"check-box-withouttickn1" 
                                                                  ofType:@"png"];
                UIImage *image  = [[UIImage alloc] initWithContentsOfFile:path];

                //[switch1 setImage: image];
                [switch1 setImage:image forState:UIControlStateNormal];
                btnimgflag1 = 0;
            }

有时候(通常是第一次按下时),按钮图像在被轻触后不会改变。

我不知道发生了什么,请指导我,谢谢。

敬礼,Saad。

2个回答

1
请调试您的代码并检查是否获取了正确的按钮标签。我已经按照您描述的完全实现并复制粘贴了您的代码,但它不起作用,然后我只是将if(btnTagcatcher.tag == 1)更改为if(btnTagcatcher.tag == 0)。现在它可以工作,请尝试验证一下。
如果您仍然遇到问题,请发送您的电子邮件地址给我,我会发送完整的代码给您。

1
你能把这个条件 else if(btnimgflag1 == 1) 改成简单的 else 语句吗?因为在 if 部分,你正在将 btnimgflag1 分配为 1 btnimgflag1 = 1;。这只是我的猜测,我也曾经遇到过同样的问题!如果这没有帮助!IBOutlet 连接 可能是问题所在!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接