在Swift中获取按钮图像文件名

5

目前有一个嵌入图像的按钮。我想获取按钮的图像名称,以便在用户单击按钮时创建一个UIImage进行共享。

我尝试了各种方法,包括

let imagename = sender.currentImage
let image = UIImage(name: imagename)

这将导致错误“在调用中Bundle参数'缺少参数'inBundle'

寻求关于如何继续的指导。我将拥有许多类似于此按钮的按钮,而不是为每个按钮构建单独的操作,我更愿意构建一个函数。


4
为什么重新创建图像而不是直接使用相同的图像?let image = sender.currentImage - Caleb
没想到这一点。抱歉,我是一个新的 Swift 开发者。这是正确的处理方式。 - elke_wtf
可能相关: https://dev59.com/iHI-5IYBdhLWcg3wqqTh#10694684 - Ahmad F
2个回答

14

获取您为UIButton分配的图像名称:

let createdButton = UIButton(frame: CGRect(x: 0, y: 0, width: 30, height: 30))
createdButton.setImage(UIImage(named: "Image_Assigned"), for: .normal)
checkButtonName(yourButton: createdButton)

func checkButtonName(yourButton: UIButton) {
    if yourButton.currentImage == UIImage(named: "Image_Assigned") {
       print("IMAGE NAME IS Image_Assigned")
    }
    else {
       print("IMAGE NAME IS NOT Image_Assigned")
    }
 }

谢谢分享这个解决方案,但我想知道是否有更短的方法可用?在我的情况下,我需要比较超过30张图片,因此IF语句非常长。肯定有更好的处理方法吧? - marika.daboja
@marika.daboja 如果你有多张图片要验证,可以使用高阶函数代替。 - Ram Madhavan
请问您能详细解释一下,“高阶函数”是什么意思吗? - marika.daboja

6
您可以使用以下代码在首行引用并重复使用图片:

let image = sender.currentImage


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接