2016-06-15 2 views
0

Это расширение дает только один UIImageView внутри CollectionView. Как показать больше изображений, зависит от размера массива фотографий. Фото массив содержит массив Url для изображений (String).Как показать несколько изображений в UICollectionView Swift

extension FlatViewController: UICollectionViewDataSource{ 
     func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
      return (flat.photos?.count)! 
     } 
     func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 
      let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! CustomCollectionViewCell 

      cell.imageView.loadImageFromURL(NSURL(string: flat.image!)!) 
      return cell 
     } 
    } 

ответ

0

Ну вы можете просто пойти в Interface Builder и поместить в количестве ImageView elements в вашем CollectionViewCell, как вы хотите. Затем создайте IBOutlets для ссылки на ваши добавленные ImageView элементы в вашем CollectionViewController. Затем внутри функции cellForItemAtIndexPath просто подключите каждый URL-адрес изображения для каждого IBOutlet ImageView's.

Это должно сработать.

0

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

протоколы будут выглядеть примерно так:

protocol PhotoDelegate { 

    var photos: [[NSURL]] { get set } 

} 

protocol HasPhotos { 

    var delegate: PhotoDelegate! { get set } 

} 

Узор делегат позволит вам получить доступ к photos массив из подкласса. Вы должны установить свойство делегирования переменной переопределенной переменной ячейки и передать ее в качестве вашего подкласса в cellForRowAtIndexPath. Like So

let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "<Insert Identifier>", for: indexPath) as! Subclass 
cell.delegate = self 

Если у вас есть вопросы, просто спросите! Я люблю помогать.

Смежные вопросы