2017-04-12 82 views
0

我想要做的是当点击按钮时更改图像。此按钮效果很好,但按钮上的图像保持空白。发布前我已经做了一些认真的研究。为按钮设置的图像保持空白/白色

我看着这第一个Setting an image for a UIButton in code。虽然我不确定我的图像是否为零,但我跟着this instruction,这证实了我的形象不是零。我甚至did this,我再次确认图像出现在Assets文件夹中。

以下是我从我的控制台中看到:

2017年4月12日15:57:00.826779 + 0800的UIImage:0x170284a10,{64,64}

2017年4月12日15 :57:00.976058 + 0800的UIImage:0x1702808c0,{64,64}

2017年4月12日15:57:01.110049 + 0800的UIImage:0x170285140,{64,64}

2017年4月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; 
    } 
} 
+0

检查这个曾经http://stackoverflow.com/questions/16909753/how-to-programmatically- set-my-uibutton-image-to-redraw –

+0

你是在资产中插入图片还是在支持文件中添加简单图片请确认 –

+1

如果是在assest中,那么在'power_on.png'这个地方使用直接'power_on' –

回答

0

你可以做到这一点用故事板

最简单的方法

enter image description here

-1

它认为你应该添加框架

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

你只能改变ESE线

-(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; 

} 
+0

@Prince建议我做了这些改变,但仍然是图像保持白色/白色。我觉得奇怪的是,我的控制台告诉我图像在那里。 {64,64}是我的图像的大小。 –

+0

@ F.Chen如果我以前的答案不起作用,然后尝试用我的新答案一次 – Yatendra