Обновить данные CollectionView - PullRequest
0 голосов
/ 24 декабря 2018

Я не могу загрузить данные из API в CollectionView.Как я могу загрузить данные после того, как я получил данные от API [введите описание изображения здесь] [1]

func service() {
        Alamofire.request("https://api.letsbuildthatapp.com/appstore/featured").responseJSON { response in
            print("Request: \(String(describing: response.request))")   // original url request
            print("Response: \(String(describing: response.response))") // http url response
            print("Result: \(response.result)")                         // response serialization result
            
            if let json = response.result.value {
                let json = JSON(json)
                for i in 0..<json["bannerCategory"]["apps"].count{
                    self.arrTitle.append(json["bannerCategory"]["apps"][i]["ImageName"].string!)
                }
                if self.arrTitle.count > 0 {
                    self.collectionView.reloadData()
                }
            }
        }
        
    }

func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
        var reusable: UICollectionReusableView? = nil
            if (kind == UICollectionView.elementKindSectionHeader) {
                let view = collectionView.dequeueReusableSupplementaryView(ofKind: UICollectionView.elementKindSectionHeader, withReuseIdentifier: headerId, for: indexPath) as! CollectionReusableView
                view.backgroundColor = .white
                view.label.text = self.arrTitle[indexPath.row]
                reusable = view
            }
            return reusable!
        }

Ответы [ 2 ]

0 голосов
/ 25 декабря 2018

После получения результатов в обслуживании делегируйте свой контроллер и перезагрузите collectionView.

0 голосов
/ 25 декабря 2018

Проверьте реализацию методов источника данных представления вашей коллекции и поместите reloadData() в основной поток.

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return self.arr[section].count
    }

func numberOfSections(in collectionView: UICollectionView) -> Int {
        return self.arr.count
    }

DispatchQueue.main.async {
    self.collectionView.reloadData()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...