Быстрое сравнение имен изображений

#swift #image

#swift #изображение

Вопрос:

Я использую приведенный ниже код, чтобы определить, равно ли имя изображения в box1Image «sallywin.png».

Идентификатор, похоже, не работает.

Как бы мне это сделать?

Любая помощь очень ценится

 if (box1Image.image?.isEqual(UIImage(named: "smswin.png")))! {
            
            self.box1Image.image = UIImage(named:"sallywin.png")
        }  

Комментарии:

1. Я думаю, вам следует использовать tag свойство вашего ImageView, чтобы получить его состояние. Просто измените его, когда вы измените изображение внутри него

2. Является ли box1Image UIButton?

3. Пожалуйста, не включайте ответ в свой вопрос. Если ответ решил вашу проблему, отметьте ответ как принятый; вы также можете опубликовать свой собственный ответ, если вы решили свою проблему самостоятельно. Спасибо.

Ответ №1:

Вы не можете напрямую сравнивать два одинаковых изображения. Вы можете получить изображения как NSDATA, а затем сравнить два значения NSDATA равны.

Ответ №2:

Вы можете сравнить 2 изображения, используя NSData.

 let imageName1 : UIImage =  UIImage(named: "Selected_1.png")!
let imageName2 : UIImage =  UIImage(named: "UnSelected.png")!
let imageView = UIImageView(image: imageName1)

    if imageCompare(imageView.image!, isEqualTo: imageName2)
    {
        print("TRUE")
    }
    else
    {
        print("FALSE")
    }

func imageCompare(image1: UIImage, isEqualTo image2: UIImage) -> Bool {
    let data1: NSData = UIImagePNGRepresentation(image1)!
    let data2: NSData = UIImagePNGRepresentation(image2)!
    return data1.isEqual(data2)
}