Подтвердить что ты не робот

UIImage не отображается с помощью Swift

Код, написанный в Swift для отображения UIImages, работает в симуляторе iOS 8.0, но не на телефоне, на котором работает IOS 7.0 по какой-либо причине.

let image1 = UIImage(named: "img1")
let imageview = UIImageView(image: image1)
self.view.addSubview(imageview)

let image2 = UIImage(named: "img2")
let button = UIButton(frame: CGRect(origin: CGPoint(x: 0, y: 100), size: image2.size)
button.setImage(image2, forState: UIControlState.Normal)
self.view.addSubview(button)

Изображения находятся в нужном месте с правильным размером и допустимыми ссылками, они просто не отображаются, кроме симулятора, работающего под управлением iOS 8.

Это проблема для кого-то еще?

EDIT: Удаление из Images.xcassets, очистка проекта и копирование файлов в сам пакет, похоже, сработает для меня.

4b9b3361

Ответ 1

Я попробовал свой код в iOS 8-Simulator и на моем устройстве iOS 7, и он сделал то, что он должен делать. Так что нет, в моем случае я не вижу проблемы.

Я изменил img1 на img1.JPG(имя файла) и img2 на img2.png. И я скопировал изображения непосредственно в папку, в которой находится контроллер вида.

Ответ 2

Для отображения изображений вам необходимо изменить код следующим образом

let image1 = UIImage(named: "img1.jpg")
let imageview = UIImageView(image: image1)
self.view.addSubview(imageview)

let image2 = UIImage(named: "img2.jpg")
let button = UIButton(frame: CGRect(origin: CGPoint(x: 0, y: 100), size: image2.size)
button.setImage(image2, forState: UIControlState.Normal)
self.view.addSubview(button)

Помните, что swift не поддерживает изображения в формате .png, поддерживает формат .jpg.

Ответ 3

Вы проверили бы, было ли изображение добавлено в ваш фреймворк, если он не установлен, вы не можете загрузить ресурс, но если вы его проверите, изображение будет загружено введите описание изображения здесь

Ответ 4

Я сохранил свои изображения в папке "Images.xcassets" , и мои изображения не появились на моем устройстве, но они появились на симуляторе. Чтобы отображать изображения "Images.xcassets" на моем устройстве (iPhone 5), я, решение, которое работало для меня, было копирование ресурсов пакета для папки "Images.xcassets"

Чтобы скопировать ресурсы пакета: выберите "Целевая задача" > "Сформировать фазы" > "Ресурсы копирования ресурсов" > "+" (Добавить элементы) > Выберите "Images.xcassets

Ответ 5

Кажется, что между ответами на вопрос и другими ответами есть отключение, поэтому я добавлю общий ответ для отображения изображения в Swift. Это то, что изначально привело меня сюда.

Как отобразить изображение в Swift

Используйте UIImage, чтобы получить ссылку на изображение в главном комплекте.

let image = UIImage(named: "rocket.png")
imageView.image = image

Примечания

  • imageView - это UIImageView
  • В моих тестах, включая или исключая расширение .png, не было другого. Однако может потребоваться включить, если вы используете несколько форматов изображений.
  • Также в моих тестах не было никакого значения, было ли изображение непосредственно добавлено в проект или было в Assets.xcassets.
  • Если вам нужно изображение, которого нет в главном комплекте, см. этот вопрос.
  • В соответствии с редакцией в исходном вопросе здесь удаление изображения и повторное добавление его в комплект - вот что решило проблему.