【问题标题】:can't change image of uibutton after pressing other buttons按下其他按钮后无法更改uibutton的图像
【发布时间】:2016-01-19 20:16:38
【问题描述】:

我有 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)时,当我按下另一个按钮时才会出现问题。

【问题讨论】:

    标签: ios uibutton


    【解决方案1】:

    您可以为此目的使用 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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-25
      • 1970-01-01
      相关资源
      最近更新 更多