【发布时间】:2021-12-01 03:52:55
【问题描述】:
我创建了一个通用的 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。但我仍然看不到屏幕上的任何单元格。我可能会遗漏什么?
【问题讨论】:
-
collectionView 的框架是什么?是否调用了数据源方法? cellForItemAt、numberOfItemsInSection 等?
-
@Larme 集合视图有约束而不是框架。它的约束被定义为视图的约束。所以我会伸展以填充视图。 CellForItem at 有一个 dequeReusableCell ,它是一个自定义单元格。 numberofItemsInSection 是静态的 100
标签: ios swift uiview uicollectionview uicollectionviewcell