#ios #swift #uicollectionview #uicollectionviewcell
Вопрос:
Итак, у меня есть моя программа, в которой у меня есть два представления коллекции на одном и том же контроллере просмотра. Однако, когда я запускаю приложение, я вижу только одно. Я установил ограничения на изображение одинаково для обоих.
массивы productsImages и StoresImages-это имена изображений, которые у меня есть в папке «Ресурсы». Кроме того, pillImage и compStoreImage у меня есть в качестве выхода в моих файлах ColectionViewCell.
Контроллер домашнего просмотра.swift
import UIKit class HomeViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource{ @IBOutlet weak var productCollectionView: UICollectionView! @IBOutlet weak var storesCollectionView: UICollectionView! func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -gt; Int { if(collectionView == storesCollectionView) { return storesImages.count } return productsImages.count } func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -gt; UICollectionViewCell { let cell = productCollectionView.dequeueReusableCell(withReuseIdentifier: "productsCell", for: indexPath) as! productCollectionViewCell cell.pillImage.image = UIImage(named: productsImages[indexPath.row]) if(collectionView == storesCollectionView) { let cell2 = storesCollectionView.dequeueReusableCell(withReuseIdentifier: "storesCell", for: indexPath) as! StoreCollectionViewCell cell2.compstoreImage.image = UIImage(named: storesImages[indexPath.row]) return cell2 } return cell } var productsImages:[String] = ["pillImage", "pillyImage", "pillsImage"] var storesImages:[String] = ["compstoreImage", "compeImage", "compeStore"] override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } /* // MARK: - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation override func prepare(for segue: UIStoryboardSegue, sender: Any?) { // Get the new view controller using segue.destination. // Pass the selected object to the new view controller. } */ }
StoreCollectionViewCell.swift
import UIKit class StoreCollectionViewCell: UICollectionViewCell { @IBOutlet var compstoreImage: UIImageView! }
productCollectionViewCell.swift
import UIKit class productCollectionViewCell: UICollectionViewCell { @IBOutlet var pillImage: UIImageView! }
Комментарии:
1. В вашем
cellForItemAt
методе, если(CollectionView == productCollectionView) { пусть ячейка = … } еще { пусть ячейка2 = … }2. Вы уверены, что установили HomeViewController в качестве делегата и источника данных для представления обеих коллекций??
3. Спасибо, Альганади! Я забыл это сделать!