Swift 如何获取以编程方式设置的UIImageView的名称?
我以编程方式定义了UIImageView,如下所示:Swift 如何获取以编程方式设置的UIImageView的名称?,swift,Swift,我以编程方式定义了UIImageView,如下所示: let imageConstant: UIImageView = { let image = UIImageView() image.clipsToBounds = true image.contentMode = .scaleAspectFit image.translatesAutoresizingMaskIntoConstraints = false image.image = UIImag
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的名称,它只用于获取文件,而不用于存储。