不显示图像

时间:2017-12-09 21:07:21

标签: ios swift

我试图将图像发送到另一个视图,但问题是它没有在UIImage中显示图像。
我正在做的是将一个字符串发送到另一个视图,如果该字符串与"一个"或者"两个"等等。它应该从资产中获取图像。

if imagen=="one" {
    miImagen == UIImage(named: "one")
}

我检查我发送的内容并打印出来(并且有效)。它唯一没有显示它。

import UIKit

class SecondController: UIViewController {
    @IBOutlet weak var miImagen: UIImageView!

    var imagen = String()

    override func viewDidLoad() {
        super.viewDidLoad()

        if imagen=="uno" {
            self.miImagen.image == #imageLiteral(resourceName: "uno")
        }

        if imagen=="dos" {
             self.miImagen.image == #imageLiteral(resourceName: "dos")
        }
        if imagen=="three" {
            self.miImagen.image == #imageLiteral(resourceName: "three")
        }
        if imagen=="four" {
            self.miImagen.image == #imageLiteral(resourceName: "four")
        }
        if imagen=="five" {
           self.miImagen.image == #imageLiteral(resourceName: "five")
        }
        if imagen=="six" {
             self.miImagen.image == #imageLiteral(resourceName: "six")
        }
        if imagen=="seven" {
             self.miImagen.image == #imageLiteral(resourceName: "seven")
        }
        if imagen=="eight" {
             self.miImagen.image == #imageLiteral(resourceName: "eight")
        }
    }
}

我添加了一个" ifs" print("Your image name is"+imagen")并且它有效,但它不会执行其他代码。

1 个答案:

答案 0 :(得分:1)

您的主要问题是尝试使用==代替=将图片分配到图片视图。

之后,您可以进行一些改进。由于imagen只能等于一个值,因此您应该使用if else

if imagen == "uno" {
    miImagen.image = UIImage(named: "uno")
} else if imagen == "dos" {
        miImagen.image = UIImage(named: "dos")
} else if ... { // etc.
}

更好的是,使用switch

switch imagen {
    case "uno":
        miImagen.image = UIImage(named: "uno")
    case "dos":
        miImagen.image = UIImage(named: "dos")
    // and the rest
    default:
        break
}

但最好的解决方案是考虑到您想要的图像与imagen的值相同。仅使用

替换整套if
miImagen.image = UIImage(named: imagen)

这就是你所需要的一切。只需一行就可以处理所有图像。