【问题标题】:The image set for button stays blank/white按钮的图像集保持空白/白色
【发布时间】:2017-04-12 08:13:55
【问题描述】:

我想要做的是在单击按钮时更改图像。此按钮效果很好,但我的按钮中的图像保持空白。我在发帖前做了一些认真的研究。

我首先看到了这个Setting an image for a UIButton in code。虽然我不确定我的图像是否为零,但我关注了this instruction,这证实了我的图像不是零。我什至did this 并再次确保图片存在于 Assets 文件夹中。

这是我从控制台获得的信息:

2017-04-12 15:57:00.826779+0800 UIImage: 0x170284a10, {64, 64}

2017-04-12 15:57:00.976058+0800 UIImage: 0x1702808c0, {64, 64}

2017-04-12 15:57:01.110049+0800 UIImage: 0x170285140, {64, 64}

2017-04-12 15:57:01.275860+0800 UIImage: 0x170280910, {64, 64}

我有这个:

在.h文件中

- (IBAction)powerButtonAction:(UIButton*)sender;

@property (weak, nonatomic) IBOutlet UIButton *powerButton;

在.m文件中

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


   if (sender.selected) {
       UIImage *powerButtonImage = [UIImage imageNamed:@"power_off.png"];
       [powerButton setImage:powerButtonImage forState:UIControlStateNormal];
       [self.view addSubview:powerButton];
       NSLog(@"%@",powerButtonImage);
       [selectedDevice setPower:powerButton.selected];
       sender.selected = NO;
   } else {
       UIImage *powerButtonImage = [UIImage imageNamed:@"power_on.png"];
       [powerButton setImage:powerButtonImage forState:UIControlStateSelected];
       [self.view addSubview:powerButton];
       NSLog(@"%@",powerButtonImage);
       [selectedDevice setPower:!powerButton.selected];
       sender.selected = YES;
   }
}

【问题讨论】:

  • 您是在资产中插入图片还是在支持文件中添加图片请确认
  • 如果它在评估中,那么在power_on.png这个地方直接使用power_on
  • 我检查了链接并进行了更改,仍然有同样的问题。我将图像添加到 Assets.xcassets 文件夹中。我的应用中还有其他运行良好的图片。
  • 为什么不为选择按钮状态的电源按钮设置图像?尝试使用 [powerButton setImage:powerButtonImage forState:UIControlStateSelected] 为按钮的选定状态设置图像;

标签: ios objective-c uibutton uiimage


【解决方案1】:

您可以使用故事板实现此目的

最简单的方法

【讨论】:

    【解决方案2】:

    您只需更改这些行

     -(void)viewDidLoad {
            UIImage *powerButtonImage = [UIImage imageNamed:@"power_off.png"];
            [powerButton setImage:powerButtonImage forState:UIControlStateNormal];
            UIImage *powerButtonImage2 = [UIImage imageNamed:@"power_on.png"];
             [powerButton setImage:powerButtonImage2 forState:UIControlStateSelected];
            [self.view addSubview:powerButton];
        }
    
    - (IBAction)powerButtonAction:(UIButton*)sender {
    
    
      sender.selected = !sender.selected;
    
    }
    

    【讨论】:

    • 这是@Prince 的建议,我进行了更改,但图像仍然保持白色/白色。我觉得奇怪的是,我的控制台向我显示图像在那里。 {64, 64} 是我的图片大小。
    • @F.Chen 如果我以前的答案不起作用,请尝试我的新答案一次
    【解决方案3】:

    它认为你应该添加框架

    powerButton.frame =CGRectMake(x, y , width, height);
    

    【讨论】:

      猜你喜欢
      • 2019-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-31
      • 2021-06-18
      • 1970-01-01
      • 2013-07-02
      • 2020-07-25
      相关资源
      最近更新 更多