首页 > 解决方案 > CollectionView 不显示任何 CollectionViewCell

问题描述

我创建了一个通用的 UIView 类,其中包含一个 UICollectionView 。如下所示。(下面的类还处理带有默认值的 UICollectionView 的协议)

class MyCollectionView: BaseView<CollectionViewModel> {

private lazy var myCollectionView: UICollectionView = {
    let temp = UICollectionView(frame: .zero, collectionViewLayout: UICollectionViewLayout()) // setting initial collectionView
    temp.translatesAutoresizingMaskIntoConstraints = false
    temp.delegate = self
    temp.dataSource = self
    temp.register(CollectionViewCell.self, forCellWithReuseIdentifier: CollectionViewCell.identifier)
    temp.clipsToBounds = true
    
    return temp
 }() 
}

我创建了MyCollectionView的一个实例(上面的类),并作为子视图添加到MainViewController(下面的类)。这样做让我将MyCollectionView显示为 MainViewController 的子视图。到目前为止我已经完成了。

class MainViewController: UIViewController {

private lazy var collectionView: MyCollectionView = {
    let temp = MyCollectionView()
    temp.translatesAutoresizingMaskIntoConstraints = false
    temp.backgroundColor = .black
    
    
    return temp
}()

override func viewDidLoad() {
    super.viewDidLoad()
    view.addSubview(collectionView)
    setUpConstraintsAndViews()
    // Do any additional setup after loading the view.
}

后来我尝试制作UICollectionViewCell类并将其注册到 myCollectionView。但我仍然看不到屏幕上的任何单元格。我可能会丢失什么?

标签: iosswiftuiviewuicollectionviewuicollectionviewcell

解决方案


您的MyCollectionView课程不是UICollectionView. 它没有子视图,它有一个创建集合视图UICollectionView的私有变量。myCollectionView

据我所知,您正在添加一个实例MyCollectionView作为MainViewController. 我不明白这如何增加UICollectionView你的观点MainViewController

您的消费者MyCollectionView应该如何访问它拥有的集合视图?


推荐阅读