在运行时获取UIImageView IB图像属性值

时间:2016-08-04 19:13:52

标签: ios swift uiimageview

我希望在运行时获取这两个值。

enter image description here

想象一下,由于某些原因,无法在代码中的任何位置设置此名称。只在IB。但我可以在我的代码中拥有一系列所有可能的图像名称。

let images = ["black_76", "black_152", ...and so on]

有意图然后能够做到:

if images.contains(nameOfImageInIB) {
    //do stuff
}

acessibilityIdentifier是人们提出的一个好主意,但由于imageView或按钮可以有多个图像与之关联,但只有一个acessibilityIdentifier,它不起作用。

最终目标是只能使用IB属性以某种方式在代码中提供我的图像名称。将标记设置为数组中名称的索引可能会有效,但同样,我只能有一个标记,但需要查找两个图像。

此外,尽量避免将IBDesignable添加到我的代码中,只使用IB中默认提供的内容。

4 个答案:

答案 0 :(得分:0)

UIImage在运行时没有引用图像的名称。有一些方法可以使用UIImageView的可访问性标签:https://stackoverflow.com/a/16825088/1852164

答案 1 :(得分:0)

我害怕这是不可能的。查看this answer以查看有关原因的详细信息。

在运行时无需获取此文件名的情况下,可能还有另一种方法可以执行任何操作,但我不确定没有关于您的情况的更多详细信息。如果您正在尝试查看当前存储在UIImageView中的图像,则必须在UIViewController中维护一个变量,该变量指示上次加载的图像并进行检查。或者,例如,如果您希望能够识别已经点击的图像,则可以改为比较图像的数组索引而不是文件名。在viewDidLoad()中,您可以使用阵列中已有的文件名以编程方式生成图像。

答案 2 :(得分:0)

根据question

,它看起来至少是困难的

但其中一个answers指向使用accessibilityIdentifier是否推荐

答案 3 :(得分:0)

您可以考虑设置图像.tag选项,但这是否成功取决于用户如何选择图像......