swift,如何从UIImageView获取当前显示的图像文件名

sem*_*gay 11 ios swift

我想获取当前在UIImageView上显示的图像文件名.我试着得到如下:

let currentImage = alien.image // !alien is my image view 
println(currentImage?.description)
Run Code Online (Sandbox Code Playgroud)

但它打印:

Optional("<UIImage: 0x7fa61944c3d0>")
Run Code Online (Sandbox Code Playgroud)

Fog*_*ter 14

你不能这样做.既不快速也不客观 - c.

要做的是存储要检索的数据.那就是......将名称存储在某处并使用它来加载图像.不是相反.

因此,创建一个类似的属性imageName,然后使用它来加载图像.


Chr*_*ley 6

解决方法是,对于以后需要参考的图像,我使用还原ID存储图像名称。

我以这种方式使用恢复ID,这样我就可以将多个按钮连接到同一个@IBAction并根据存储在恢复ID中的图像名称进行标识,并运行有关我要显示或隐藏的内容的逻辑。

也许有更好的方法,但是这很关键。

我将图像名称作为恢复ID。

这是我指定图像文件的位置。

在此处输入图片说明

然后我将其复制并作为恢复ID放入。

(注意:这并不是本来打算使用的,因为它实际上是用于自定义状态引用,但是如果这与您的视图目的无关,那么它应该可以正常工作。)

在此处输入图片说明

选择按钮时在代码中引用。

//Connected to several onboarding buttons.
@IBAction func onBoardingButton(sender: UIButton) {

    println(sender.restorationIdentifier)



}
Run Code Online (Sandbox Code Playgroud)

RID已打印出来。

在此处输入图片说明


您还可以标记图像,并通过标记保留对这些图像的引用。

在此处输入图片说明

而且参考也很容易。

@IBAction func onBoardingButton(sender: UIButton) {

    println(sender.restorationIdentifier!)
    println(sender.tag)


}
Run Code Online (Sandbox Code Playgroud)

虽然似乎我们无法辨别是什么文件来填充图像视图(我知道并基于对自己的一点了解),但将硬引用附加到视图(图像,按钮等)却可以使我确定连接代码的一面,并确定正在使用哪个图像(在我的情况下为按钮)。