CollectionView 不显示任何 CollectionViewCell
CollectionView doesn't show any CollectionViewCell
我创建了一个通用的 UIView class,其中包含一个 UICollectionView。如下所示。 (Class 下面还处理了具有默认值的 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(上面的 class)的实例,并作为子视图添加到 MainViewController( Class 下)。所以这样做让我显示 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 class 并将其注册到 myCollectionView。但我仍然无法在屏幕上看到任何单元格。我可能会遗漏什么?
您的 MyCollectionView
class 不是 UICollectionView
。它没有 UICollectionView
的子视图,它有一个创建集合视图的私有变量 myCollectionView
。
据我所知,您正在添加 MyCollectionView
的实例作为 MainViewController
的子视图。我不明白如何将 UICollectionView
添加到您的视图 MainViewController
。
您 MyCollectionView
的消费者应该如何访问它拥有的集合视图?
我创建了一个通用的 UIView class,其中包含一个 UICollectionView。如下所示。 (Class 下面还处理了具有默认值的 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(上面的 class)的实例,并作为子视图添加到 MainViewController( Class 下)。所以这样做让我显示 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 class 并将其注册到 myCollectionView。但我仍然无法在屏幕上看到任何单元格。我可能会遗漏什么?
您的 MyCollectionView
class 不是 UICollectionView
。它没有 UICollectionView
的子视图,它有一个创建集合视图的私有变量 myCollectionView
。
据我所知,您正在添加 MyCollectionView
的实例作为 MainViewController
的子视图。我不明白如何将 UICollectionView
添加到您的视图 MainViewController
。
您 MyCollectionView
的消费者应该如何访问它拥有的集合视图?