Почему изображения UICollectionViewCell не загружаются, хотя в отладчике образ var не равен nil? - PullRequest
0 голосов
/ 19 июня 2019

Я использую представление коллекции, чтобы показать выбор категорий в приложении новостей.Изображения из моей коллекции не загружаются в ячейку.При проверке в отладчике image var содержит изображение.Изображения должны быть загружены из папки Assets.xcassets.при выводе значения изображения вида ячейки в отладчике отображается ноль.

PS: ячейки и их метки загружаются нормально, только изображения .png не загружаются.

import UIKit

class CategoriesViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate {

    @IBOutlet weak var categoriesCollectionView: UICollectionView!
    private var newsCategories = ["Buisness","Sports","Health","Science","Entertainment","Technology","General","Everything"]

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        categoriesCollectionView.delegate = self
        categoriesCollectionView.dataSource = self
    }

    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return newsCategories.count
    }

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        if let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "CategoriesCollectionViewCell", for: indexPath) as? CategoriesCollectionViewCell{
            cell.imageView.image = UIImage(contentsOfFile: newsCategories[indexPath.item])
            cell.label.text = "\(newsCategories[indexPath.item])"
            return cell
        }else{ return collectionView.dequeueReusableCell(withReuseIdentifier: "PlaceholderCell", for: indexPath) }
    }
}

Ответы [ 2 ]

0 голосов
/ 19 июня 2019

UIImage (contentsOfFile:) - возвращает UIImage из вашего комплекта проекта, с определенного пути, который вы передаете в качестве аргумента.

UIImage (named :) - возвращает UIImage, но он ищет файл, который содержит «имя», которое вы передаете в качестве аргумента в каталоге проекта Assets.xcassets

0 голосов
/ 19 июня 2019

Эта комбинация

private var newsCategories = ["Buisness","Sports","Health","Science","Entertainment","Technology","General","Everything"]

И

UIImage(contentsOfFile: newsCategories[indexPath.item])

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

Или используйте

UIImage(named:newsCategories[indexPath.item])

, если изображения поставляются в основном комплекте приложения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...