Swift 如何获取以编程方式设置的UIImageView的名称?

Swift 如何获取以编程方式设置的UIImageView的名称?,swift,Swift,我以编程方式定义了UIImageView,如下所示: let imageConstant: UIImageView = { let image = UIImageView() image.clipsToBounds = true image.contentMode = .scaleAspectFit image.translatesAutoresizingMaskIntoConstraints = false image.image = UIImag

我以编程方式定义了UIImageView,如下所示:

  let imageConstant: UIImageView = {
    let image = UIImageView()
    image.clipsToBounds = true
    image.contentMode = .scaleAspectFit
    image.translatesAutoresizingMaskIntoConstraints = false
     image.image = UIImage(named: "imageNameSavedInAssets")
    return image
}()
如何访问imageConstant图像的名称?
也就是说,如何访问imageConstant.image的名称,该名称读取imageNameSavedInAssets?

子类UIImageView并添加一个保存图像文件名称的自定义变量。大概

class customImageView: UIImageView {

var fileName: String?

  init(name: String?) {
    super.init()
    fileName = name
  }
}
添加XCode所需的任何其他初始值设定项

let imageView = customImageView("banana")

print(imageView.fileName)

UIImageView的accessibilityIdentifier属性正确返回您在其图像实例化中提供的输入字符串,如果该字符串不是有效名称,则返回nil。

您可以编写自定义类来设置和获取图像名称

class customImageView: UIImageView {

var imageName: String?

func setImage(_ name: String) {
    imageName = name
    image = UIImage(named: imageName ?? "")!
}
}

accessibilityIdentifier通常用于用户访问中,但并不适用于任何地方

最推荐的方法是使用视图的标记属性。根据您的标签更改图像

var imageView = UIImageView(image: UIImage(named: "image1"))
imageView.tag = 1
switch imageView.tag {
case 1:
imageView.image = UIImage(named: "image1")
imageView.tag = 2
case 2:
imageView.image = UIImage(named: "image2")
imageView.tag = 3
default:
imageView.image = UIImage(named: "image3")
imageView.tag = 1
}
有关更多信息,请参阅线程:

您为什么需要它?这听起来像是个XY问题。你应该检查你的模型,而不是你的观点。这只是我需要完成的家庭作业。我一直在阅读文档和属性,但我不知道这是怎么做到的。我怀疑家庭作业要求你做这个特定的任务,根据这个确切的代码获取图像的名称。家庭作业要求你做什么?不,代码是我的,我应该将所述图像的名称插入到一个语句中,这样它就会读到:你已经选择了图像的名称,实际上会读到你已经选择了一个banana,你可以通过其他方式实现这一点。但是我认为没有办法获取任何UIImage的名称,它只用于获取文件,而不用于存储。