如何在 Xcode 中检查按钮图像
Posted
技术标签:
【中文标题】如何在 Xcode 中检查按钮图像【英文标题】:How to check a buttons image in Xcode 【发布时间】:2011-08-14 16:30:18 【问题描述】:我目前正在尝试找出是否可以检查按钮使用的图像。
假设我有 image1 和 image2。
如果按钮图像是 image1,请执行此操作,如果按钮图像是 image2,请执行此操作。
但是 xcode 没有给我任何自动填充选项....
[m1 setImage:[UIImage imageNamed: @"Penguin.png"] forState:UIControlStateNormal];
这就是我设置图像的方式。但是我怎么知道它是 Penguin 还是 Penguin2?
【问题讨论】:
【参考方案1】:刚刚使用此代码在图像的基础上进行按钮操作
- (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】:Cocoa Touch 是围绕模型-视图-控制器模式设计的,因此您可能想尝试采用该模式。与其尝试从视图(按钮)中检索状态信息(所选企鹅),不如将其存储在控制器类的实例变量中。
您设置图像的代码可能如下所示:
self.currentImage = @"Penguin.png";
[m1 setImage:[UIImage imageNamed: currentImage] forState:UIControlStateNormal];
那么当你需要检查值时:
if ([@"Penguin.png" isEqual:self.currentImage])
do something;
【讨论】:
【参考方案3】:检查图像的相等性如下:
if ([[UIImage imageNamed:@"Penguin.png"] isEqual:m1.currentImage])
// do something
【讨论】:
我认为这行不通,因为您正在尝试比较来自同一个父亲的两个不同实例。它应该总是打印错误 只有当你从 [UIImage imageNamed:] 方法将 image 设置为 m1 时才有效,因为它在使用时一直保持连接,但如果你尝试通过 [[UIImage alloc] initWithContentsOfFile 设置:] 它总是错误的 没错。+[UIImage imageNamed:]
缓存它加载的图像,所以它们都是一样的。实际上[UIImage imageNamed:@"Penguin.png" == m1.currentImage
应该可以工作。但前提是您始终使用 +imageNamed:
创建图像。【参考方案4】:
可以使用2种方法:
1.
UIImage *image = self.myButton.currentBackgroundImage;
2.
myImageView.image = [myButton backgroundImageForState:myButton.state];
【讨论】:
【参考方案5】:UIImage *img=[(UIButton *) sender currentImage];
if(img == [UIImage imageNamed:@"edit"])
//If do something
`
试试这个希望它会起作用
【讨论】:
如果不起作用,请添加@"edit.png" 或哪种格式的图像。对我来说它工作正常【参考方案6】:在 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
【讨论】:
以上是关于如何在 Xcode 中检查按钮图像的主要内容,如果未能解决你的问题,请参考以下文章
在 Xcode 4.1 中使用界面生成器时如何在按钮后面发送图像背景
按下 xcode 7 / Swift 2 时如何更改按钮的图像? [复制]