繁体   English   中英

按下其他按钮后无法更改uibutton的图像

[英]can't change image of uibutton after pressing other buttons

我有2个按钮,即使它们被释放,它们也与按下的图像保持一致,直到按下另一个按钮,然后图像恢复为正常图像,我的代码是这样的:

    - (IBAction)button1_touch:(UIButton *)sender
{

    [Button2 setImage:[UIImage imageNamed:@"b2Released.png"] forState:UIControlStateNormal];

    [Button1 setImage:[UIImage imageNamed:@"b1Pressed.png"] forState:UIControlStateNormal];    
}

- (IBAction)button2_touch:(UIButton *)sender
{
    [Button1 setImage:[UIImage imageNamed:@"b1Released.png"] forState:UIControlStateNormal];

    [Button2 setImage:[UIImage imageNamed:@"b2Pressed.png"] forState:UIControlStateNormal]; 


}

上面的代码在应用程序启动时工作正常,行为是预期的同时按下两个按钮,图像正确更改,但是当我按下除这两个按钮之外的其他按钮时,“ Button2”一旦获得“ B2Pressed.png”图像,就永远不会返回其释放的图像,我在button1_touch中编写了一个nslog,并按预期进行打印,而Button1得到了其按下的图像,但是Button2没有得到其释放的图像,就像当我按下其他按钮时UiButton的setImage方法损坏按钮比这两个按钮更重要,其他按钮则与那两个按钮无关,对我来说,这种行为完全没有意义,是否会破坏xcode? 我正在使用xcode 7.2

编辑:仅当该按钮具有分配给它的操作选择器(UIControlEventTouchUpInside)时,才出现该问题。

为此,可以使用UIButton的selected状态:

- (void)viewDidLoad {
    // ...
    // the place where you do buttons setup
    [button1 setImage:[UIImage imageNamed:@"b1Released"] forState:UIControlStateNormal];
    [button1 setImage:[UIImage imageNamed:@"b1Pressed"] forState:UIControlStateSelected];
    [button2 setImage:[UIImage imageNamed:@"b2Released"] forState:UIControlStateNormal];
    [button2 setImage:[UIImage imageNamed:@"b2Pressed"] forState:UIControlStateSelected];
}    

- (IBAction)firstButtonTouch:(UIButton *)sender {
    button1.selected = YES;
    button2.selected = NO;
}

- (IBAction)secondButtonTouch:(UIButton *)sender {
    button1.selected = NO;
    button2.selected = YES;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM