如何检查Xcode中的按钮图像

时间:2011-08-14 16:30:18

标签: ios cocoa-touch uibutton

我目前正试图找出是否可以检查按钮使用的图像。

假设我有image1和image2。

如果按钮图像是image1,请执行此操作,如果按钮图像是image2,请执行此操作。

但是xcode并没有给我任何自动填充选项......

[m1 setImage:[UIImage imageNamed: @"Penguin.png"] forState:UIControlStateNormal];

这是我设置图像的方式。但我如何找到它的企鹅或企鹅2?

6 个答案:

答案 0 :(得分:6)

Cocoa Touch是围绕模型 - 视图 - 控制器模式设计的,因此您可能希望尝试采用该模式。而不是尝试从视图中检索状态信息 - 选定的企鹅 - 按钮 - 将其存储在控制器类的实例变量中。

您设置图片的代码可能如下所示:

self.currentImage = @"Penguin.png";
[m1 setImage:[UIImage imageNamed: currentImage] forState:UIControlStateNormal];

然后当你需要检查值时:

if ([@"Penguin.png" isEqual:self.currentImage]) {
    do something;
}

答案 1 :(得分:6)

根据图像

使用此代码进行按钮操作
- (IBAction)checkButtonClicked:(UIButton *)sender {

    if ([checkButton.currentImage isEqual:[UIImage imageNamed:@"checkbox.png"]]) 
        [checkButton setImage:[UIImage imageNamed:@"Checked.png"] forState:UIControlStateNormal];
//do some thing here for your image1

        else
    [checkButton setImage:[UIImage imageNamed:@"checkbox.png"] forState:UIControlStateNormal];
    //do some thing here for your image 2

}

答案 2 :(得分:3)

检查图像的相等性如下:

if ([[UIImage imageNamed:@"Penguin.png"] isEqual:m1.currentImage]) {
    // do something 
}

答案 3 :(得分:3)

可以使用2种方法:

1

UIImage *image = self.myButton.currentBackgroundImage;

2

myImageView.image = [myButton backgroundImageForState:myButton.state];

答案 4 :(得分:3)

UIImage *img=[(UIButton *) sender currentImage];   

if(img == [UIImage imageNamed:@"edit"])
{  
    //If do something
 }`

试试这个希望它会起作用

答案 5 :(得分:1)

在Swift中也可以

iOS 8 +

if button.currentImage?.isEqual(UIImage(named: "Penguin.png")) {
        //do something here
    }

iOS 7-

if timerButton.currentImage ==  UIImage(named: "Penguin.png") {
        //do something here
    }