Я пытаюсь программно реализовать UICollectionViewController (НЕ используя раскадровку, хотя мой проект действительно использует раскадровку для других вещей). Я могу подключить свой источник данных и отобразить количество ячеек, соответствующее количеству совпадений из моего индекса, но ячейки пустые и общие; моя пользовательская ячейка не отображается должным образом.
import UIKit
import InstantSearch
private let reuseIdentifier = "CollectionGridCell"
class ResultsCollectionViewController: UICollectionViewController, HitsController {
var hitsSource: HitsInteractor<Test>?
override func viewDidLoad() {
super.viewDidLoad()
collectionView.dataSource = self
collectionView.delegate = self
collectionView.register(CollectionGridCell.self, forCellWithReuseIdentifier: reuseIdentifier)
collectionView.backgroundColor = .clear
// Do any additional setup after loading the view.
}
override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return hitsSource?.numberOfHits() ?? 0 }
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! CollectionGridCell
// Configure the cell
let hit = hitsSource?.hit(atIndex: indexPath.row)
cell.backgroundColor = UIColor.red
return cell
}
}
Этот UICollectionTableViewController является частью StackView. Из родительского V C он инициализируется следующим образом:
let hitsCollectionController = ResultsCollectionViewController(collectionViewLayout: UICollectionViewFlowLayout())
stackView.addArrangedSubview(hitsCollectionController.collectionView)
Это то, что я вижу. Обратите внимание, что количество квадратов точно отражает количество элементов в моем источнике данных.
Here is my xib file, if that helps any.
введите описание изображения здесь
Я ожидал, что у ячеек должна быть метка с надписью «Test» внутри, которую я могу установить на основе попадания. Вместо этого они просто пустые и кажутся ячейками по умолчанию. Моя ячейка не регистрируется / не отображается должным образом. У меня есть ощущение, что это как-то связано с настройками макета, но я действительно не уверен. У меня есть соответствующее табличное представление, которое отлично работает.