我是IOS的新手,单击按钮时尝试更改按钮的图像。

但是按钮的图像没有变化,代码如下:

- (IBAction)modeChangeClick:(id)sender {
    NSLog(@"recordMode = %hhd" , recordMode);
    if(recordMode == YES){
        [self.modeChangeButton setImage:[UIImage imageNamed:@"photomode.png"] forState:UIControlStateNormal];

        [self.view addSubview:self.modeChangeButton];

        recordMode = NO;

    }else if(recordMode == NO){
        [self.modeChangeButton setImage:[UIImage imageNamed:@"recordmode.PNG"] forState:UIControlStateNormal];

        [self.view addSubview:self.modeChangeButton];

        recordMode = YES;
    }

}

上面的代码中有什么问题吗?

提前致谢。

- - - - - - - - - - - - 编辑 - - - - - - - - - - - -
  • (void)viewDidLoad
    {

    UIButton * modeChangeButton = [[UIButton alloc] initWithFrame:CGRectMake(200,450,60,60)];
    [modeChangeButton setBackgroundImage:[UIImage imageNamed:@“recordmode.PNG”] forState:UIControlStateNormal];
    [self.view addSubview:modeChangeButton];
    

  • (IBAction)modeButtonClick:(id)sender {
    如果(recordMode == YES){
    [self.modeChangeButton setBackgroundImage:[UIImage imageNamed:@"photomode.png"] forState:UIControlStateNormal];
    recordMode = NO;
    

    }否则,如果(recordMode == NO){
    [self.modeChangeButton setBackgroundImage:[UIImage imageNamed:@"file_viewer.png"] forState:UIControlStateNormal];
    recordMode = YES;
    

    }

  • 当我单击按钮时,图像已更改。
    但是我在Viewdidload中添加的第一张图像仍然存在...

    问题1

    单击Viewdidload时,如何删除添加在button中的第一张图片?

    问题2

    单击按钮时可以固定图像的尺寸吗? (类似于按钮的大小或固定重量和高度)???

    左边的图片无关紧要。
    右边的图片是当我按下按钮的图像时。它并没有改变任何事情。

    当我单击图像的侧面(不在图像上)时,图像会发生变化

    最佳答案

    用这个

    - (IBAction)modeChangeClick:(id)sender {
        NSLog(@"recordMode = %hhd" , recordMode);
    
      [self.modeChangeButton setBackgroundImage: recordMode ? [UIImage imageNamed:@"photomode.png"] : [UIImage imageNamed:@"recordmode.png"] forState:UIControlStateNormal];
    
            [self.view addSubview:self.modeChangeButton];
    
            recordMode = !recordMode;
    
    
    }
    

    08-18 07:31
    查看更多