【问题标题】:Can't change background image of custom uiButton for selected state无法更改选定状态的自定义 uiButton 的背景图像
【发布时间】:2011-04-27 09:03:15
【问题描述】:

使用下面的代码,即使我点击他,按钮似乎始终处于正常状态(始终为绿色)。

UIButton *gumb = [UIButton buttonWithType:UIButtonTypeCustom];
     gumb.frame = CGRectMake(4, 40, 104, 37);
     gumb.tag=0;
    [gumb setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
    [gumb setTitleColor:[UIColor blackColor] forState:UIControlStateSelected];
    [gumb setBackgroundImage:[UIImage imageNamed:@"greenButton.png"] forState:UIControlStateNormal];
     [gumb setBackgroundImage:[UIImage imageNamed:@"whiteButton.png"] forState: UIControlStateSelected];

如果我将正常状态的图像设置为 whiteButton 并将选择的图像设置为 greenButton,则按钮始终为白色,从不为绿色。

【问题讨论】:

  • 当你点击按钮时,它会改变状态为highlighted。未选中状态。 Selected 状态用于选项卡按钮

标签: iphone background uibutton


【解决方案1】:
[gumb setBackgroundImage:[UIImage imageNamed:@"whiteButton.png"] forState: UIControlStateHighlighted] 

用这张代替选中的图片

【讨论】:

    【解决方案2】:

    我不确定 Selected 状态是否仅用于选项卡按钮,因为我已经尝试过像 DixieFlatline 所做的那样,有时确实会更改按钮图像。但是tt.Kilew的方法绝对值得一试。你试一试: [gumb setBackgroundImage:[UIImage imageNamed:@"whiteButton.png"] forState: UIControlUIControlStateHighlighted];并且按钮图像将在单击时更改。

    【讨论】:

      【解决方案3】:

      是否在按钮点击动作中将按钮的状态设置为selected

      - (IBAction)buttonClicked:(id)sender;
      {
      UIButton *button = (UIButton *)sender;
      if(button.tag == 0)// in your case
      {
      button.selected = YES;
      }
      // Do something
      }
      

      希望对你有帮助

      【讨论】:

      • 我认为 iOS 会处理这个问题。我在代码中创建了 3 个按钮,所以我想我必须在按下一个按钮时将其他 2 个按钮的状态设置为“selected=NO”。
      【解决方案4】:

      设置选中状态图像的代码:

      [_button setImage:[UIImage imageNamed:@"whiteButton.png"] forState: UIControlStateHighlighted];
      

      普通状态图片设置代码:

      [_button setImage:[UIImage imageNamed:@"whiteButton.png"] forState: UIControlStateNormal];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-15
        • 1970-01-01
        • 1970-01-01
        • 2017-04-22
        • 1970-01-01
        • 2019-11-03
        • 1970-01-01
        • 2015-09-22
        相关资源
        最近更新 更多