2

У меня есть настройка UIViewController, которая также содержит UICollectionView внутри нее. В этом представлении Collection есть несколько ячеек, каждый из которых я хотел бы сделать отображение изображения. Изображения содержатся в массиве с именем imageThumbsAray. Каждая ячейка представляет собой квадрат 90x90, и я хотел бы, чтобы изображение заполнило область содержимого каждой ячейки. Ниже мой код для просмотра коллекции. Это кажется правильным, но когда я запускаю приложение, я возвращаюсь с пустым представлением коллекции.Внедрение изображений из массива в ячейки Collection view

func SetupCollectionView() { 
    let layout:UICollectionViewFlowLayout = UICollectionViewFlowLayout() 
    layout.sectionInset = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10) 
    layout.itemSize = CGSize(width: 90, height: 90) 
    PastObjectsCollection = UICollectionView(frame: CGRect(x: 16, y: 229, width: 368, height: 368), collectionViewLayout: layout) 
    PastObjectsCollection!.dataSource = self 
    PastObjectsCollection!.delegate = self 
    PastObjectsCollection!.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier:"Chow Object Reuse ID") 

} 

func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int { 
    return 1 
} 

func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
    return objectsCount 
} 

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 
    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Chow Object Reuse ID", forIndexPath: indexPath) as UICollectionViewCell 
    cell.backgroundColor = UIColor.whiteColor() 
    var imageView:UIImageView = UIImageView() 
    imageView.frame = CGRect(x: 0, y: 0, width: 90, height: 90) 
    imageView.image = imageThumbsArray[indexPath.row] 
    cell.addSubview(imageView) 
    return cell 
} 

Почему коллекция не создает ячейки?

Спасибо, Сиддхарт

+0

Вы никогда не добавляли свою коллекцию в свой вид. – rdelmar

+0

У меня есть вид коллекции, созданный в Interface Builder, и подключенный к коду как IBOutlet (PastObjectsCollection). Мне нужно явно добавить его в представление? – Satre

+0

Нет, но тогда почему вы создаете его в функции SetupCollectionView()? У вас также есть камера в коллекции, которую вы сделали в IB? – rdelmar

ответ

0

Этот код использовать столько кода, как я мог. Вы можете сравнить строки за строкой. У меня не было ваших объектов изображения или массива объектов. Все это программно. Дай мне знать, если тебе еще понадобится помощь.

import UIKit 


class ViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate { 

    var PastObjectsCollection:UICollectionView? 
    var layout:UICollectionViewFlowLayout? 

    override func viewDidLoad() { 
     super.viewDidLoad() 


     SetupCollectionView() 
    } 


    func SetupCollectionView() { 
     self.layout = UICollectionViewFlowLayout() 
     self.layout!.sectionInset = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10) 
     self.layout!.itemSize = CGSize(width: 90, height: 90) 
     self.PastObjectsCollection = UICollectionView(frame: CGRect(x: 16, y: 229, width: 368, height: 368), collectionViewLayout: layout!) 
     self.PastObjectsCollection!.dataSource = self 
     self.PastObjectsCollection!.delegate = self 
     self.PastObjectsCollection!.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier:"Chow Object Reuse ID") 
     self.PastObjectsCollection!.backgroundColor = UIColor.blackColor() 
     self.view.addSubview(self.PastObjectsCollection!) 

    } 

    func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int { 
     return 1 
    } 

    func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
     return 1 //objectsCount 
    } 

    func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 
     let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Chow Object Reuse ID", forIndexPath: indexPath) as UICollectionViewCell 
     cell.backgroundColor = UIColor.whiteColor() 
     var imageView:UIImageView = UIImageView() 
     imageView.frame = CGRect(x: 0, y: 0, width: 90, height: 90) 
     //imageView.image = imageThumbsArray[indexPath.row] 
     cell.addSubview(imageView) 
     return cell 
    } 
} 
Смежные вопросы