如何通过子类UIButton获取按钮的背景图像名称?

时间:2014-12-18 13:55:11

标签: ios objective-c iphone uibutton

我想在录制时获取按钮的背景图像名称。经过互联网搜索后我发现了

  

由于UIImage不存储其包含的图像的名称,   。我们必须自己将名称存储在其他地方   与按钮或图像的关系

通过this SO回答。但是,我想知道如何通过子类UIButton获取按钮的背景图像名称?我需要从UIButton乘坐什么方法来获取背景图片名称?

Button的标签,标题文本和accessibilityIdentifier已经用于其他目的。所以除了获取图像名称之外别无选择。

我的应用支持从iOS 7到最新版本。

2 个答案:

答案 0 :(得分:4)

您可以使用类别将图像名称存储在UIImage实例中。

在UIImage上添加一个名为ImageName的新类别,并为其添加一个属性:

//UIImage+ImageName.h

#import <UIKit/UIKit.h>

@interface UIImage (ImageName)

@property (strong, nonatomic) NSString *imgName;

@end

然后,您只需通过导入类别将图像的名称附加到任何UIImage。

#import "UIImage+ImageName.h"

NSString *name = @"someImage.jpg";
UIImage *image = [UIImage imageNamed:name];
image.imgName = name;

答案 1 :(得分:1)

由于UIImage不存储其包含的图像的名称,因此您无法使用。您必须自己将名称存储在与按钮或图像的关系中。

How to get the name of the backgroundImage from a button?