Почему мой пользовательский класс изображений принимает имя, но не загружает изображение в ресурсы проекта? - PullRequest
0 голосов
/ 30 сентября 2019

Мне нужно отобразить изображение в зависимости от того, какой вариант (1 из 3) пользователь выбрал на предыдущем экране, поэтому я написал собственный класс изображения следующим образом:

class customImageView: UIImageView {

var imageName: String?

func setImage(_ name: String) {
    imageName = name
    image = UIImage(named: imageName ?? "logoImage")

    //where "logoImage" is the name of the logo image file saved in xc.assets.

    }
}

Вот мой экземпляр изображения:

let image: customImageView = {
    let image = customImageView()
    let imageRetrievedFromUserDefaults = defaults.object(forKey: "chosenImage") //a string value
    print(imageRetrievedFromUserDefaults!)
    if let retrievedImageName = imageRetrievedFromUserDefaults {
        image.imageName = "\(retrievedImageName)"
    }
    image.contentMode = .scaleAspectFit
    image.clipsToBounds = true
    image.translatesAutoresizingMaskIntoConstraints = false
    return image
}()

Что мне нужно сделать, так это то, что в зависимости от того, какой вариант пользователь выбрал на странице 1, изображение отображается на странице 2. 3 строки на странице 1 совпадают с именамифайлы xc.asset в приложении.

Например. если человек на странице 1 выбирает «Apple», я хочу, чтобы этот строковый литерал хранился по умолчанию, а изображение на xc.assets, которое также называется «Apple», появилось на странице 2.

Однакос помощью приведенного выше кода на странице 2 ничего не отображается (даже изображение логотипа).

1 Ответ

0 голосов
/ 30 сентября 2019

Вам нужно вызвать setImage функцию

if let retrievedImageName = imageRetrievedFromUserDefaults {
    image.imageName = "\(retrievedImageName)"
}

должно быть

if let retrievedImageName = imageRetrievedFromUserDefaults {
    image.setImage(retrievedImageName)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...