我正在使用UIImage,我有一个Image,我想知道图像的名称。
答案 0 :(得分:9)
该功能并非内置于UIImage
,因为图像并非始终从文件加载。但是,您可以创建自定义UIImageView
子类以满足您的需求。
答案 1 :(得分:5)
这是不可能的。 UIImage实例包含实际的图像数据,而不引用文件名。
答案 2 :(得分:1)
图像不一定来自文件或其他命名来源,因此并非所有图像都有名称。从文件创建图像时,可以将名称存储在单独的NSString*
中,然后在必要时引用该存储的名称。
答案 3 :(得分:0)
此代码可以帮助您
NSString *imgName = [self.imgView1st image].accessibilityIdentifier;
NSLog(@"%@",imgName);
[self.imgView2nd setImage:[UIImage imageNamed:imgName]];
答案 4 :(得分:0)
在更高的iOS版本中,可以从描述中提取图像名称。知道,仅用于调试!
extension UIImage {
/// Extracts image name from a description.
/// * Example description: `<UIImage:0x60000278ce10 named(main: ic_timeline_milestone_bluedot) {16, 16}>`
/// * Example name: `ic_timeline_milestone_bluedot`
/// - warning: For the debug use only.
var name: String? {
let description = self.description
guard let regexp = try? NSRegularExpression(pattern: "\\(main: (.*)\\)", options: []) else { return nil }
guard let match = regexp.matches(in: description, options: [], range: description.fullRange).first else { return nil }
guard match.numberOfRanges > 0 else { return nil }
let idx1 = description.index(description.startIndex, offsetBy: range.lowerBound)
let idx2 = description.index(description.startIndex, offsetBy: range.upperBound)
return String(description[idx1..<idx2])
}
}