我正在使用一个UIImage,其中有一个Image,我想知道Image的名称。
kcwpcxri1#
UIImage并没有内置这个功能,因为图像并不总是从文件中加载的。但是,你可以创建一个自定义的UIImageView子类来满足你的需要。
UIImage
UIImageView
dkqlctbz2#
这是不可能的。UIImage示例包含实际的图像数据,而没有任何对文件名的引用。
nafvub8i3#
这段代码会帮助你
NSString *imgName = [self.imgView1st image].accessibilityIdentifier; NSLog(@"%@",imgName); [self.imgView2nd setImage:[UIImage imageNamed:imgName]];
字符串
gab6jxml4#
图像不一定来自文件或其他命名源,因此并非所有图像都有名称。当您从文件创建图像时,可以将名称存储在单独的NSString*中,然后在必要时引用存储的名称。
NSString*
clj7thdc5#
这个答案(https://stackoverflow.com/a/72542728/897465)有(我认为的)最好的答案:
let img = UIImage(named: "something") img?.imageAsset?.value(forKey: "assetName")
字符串这里有一个方便的扩展:
extension UIImage { var containingBundle: Bundle? { imageAsset?.value(forKey: "containingBundle") as? Bundle } var assetName: String? { imageAsset?.value(forKey: "assetName") as? String } }
型
klsxnrf16#
在以后的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]) } }
6条答案
按热度按时间kcwpcxri1#
UIImage
并没有内置这个功能,因为图像并不总是从文件中加载的。但是,你可以创建一个自定义的UIImageView
子类来满足你的需要。dkqlctbz2#
这是不可能的。UIImage示例包含实际的图像数据,而没有任何对文件名的引用。
nafvub8i3#
这段代码会帮助你
字符串
gab6jxml4#
图像不一定来自文件或其他命名源,因此并非所有图像都有名称。当您从文件创建图像时,可以将名称存储在单独的
NSString*
中,然后在必要时引用存储的名称。clj7thdc5#
这个答案(https://stackoverflow.com/a/72542728/897465)有(我认为的)最好的答案:
字符串
这里有一个方便的扩展:
型
klsxnrf16#
在以后的iOS版本中,可以从描述中提取图像名称。注意,仅供调试使用!
字符串