Свифт, используя перечисления для значения объекта, чтобы условно установить UIImageView.image - PullRequest
0 голосов
/ 28 августа 2018

Я хочу использовать перечисление, которое имеет 10 случаев, которые должны соответствовать 10 различным погодным условиям. Если строковое значение объекта соответствует одному из перечислений, то UIImageView.image устанавливается с соответствующим значением. Некоторые из строковых ключей имеют тире, чтобы разделить их тоже.

Какой самый эффективный способ сделать это?

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

Я бы так примерно так

enum Weather: String {
    case temperature
    case atmosphericPressure = "atmospheric_pressure"
    case wind

    var image: UIImage? {
        return UIImage(named: rawValue)
    }
}
0 голосов
/ 28 августа 2018

Вы можете достичь этого пути к

enum Weather : String {
    case  temperature, atmospheric_pressure, wind, humidity, precipitation,cloudiness
    func displayImage()->String {
        switch self {
        case .temperature:
            return "temperature.png"
        case .atmospheric_pressure:
            return "atmospheric_pressure.png"
        case .wind:
            return "wind.png"
        case .humidity:
            return "humidity.png"
        case .precipitation:
            return "precipitation.png"
        case .cloudiness:
            return "cloudiness.png"
        }
    }
}

class ViewController: UIViewController {
    @IBOutlet weak var ibOutletButton: UIButton!
    var weather = Weather.temperature
    @IBOutlet weak var imageView : UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
         imageView.image = UIImage(imageLiteralResourceName: weather.displayImage())
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...