我知道 self.collectionView 例如指的是当前实例的属性。但是,当我遇到这种语法 UICollectionViewCell.self 时:
collectionView?.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "cellID")
来自苹果文档:
func register(_ cellClass: AnyClass?, forCellWithReuseIdentifier identifier: String).
cellClass: The class of a cell that you want to use in the collection view.
我很困惑语法实际上指的是什么?
最佳答案
您了解“self.collectionView”是指您创建并呈现在屏幕上的 Collection View 。您(或界面构建者)创建该 View 。 “self”,在本例中是包含您的 Collection View 的 View Controller 。这就是故事的一半 - 另一半由系统完成。
您的 Collection View 逐个单元地填充数据。您需要告诉您的 Collection View 要使用哪种单元格(它可以是自定义设计的单元格,或者是普通的旧 UICollectionViewCell)。你这样做的方法是“注册”你的手机。这会告诉 Collection View 在需要时创建哪种类型的单元格。
在我把它们联系在一起之前的最后一点:你可以在你的一个 Collection View 中有不同种类的单元格。也许有些单元格有图像,有些单元格可能只是纯文本,其他单元格可能有组合。实现这一点的方法是要求您使用关联的 ID 注册您的单元格,以便您在需要单元格时更轻松地选择特定类型的单元格。
注册语法完成两件事。对于您要使用的每种类型的单元格(通常只有一种),您可以注册所需的单元格类型。这就是“UICollectionViewCell.self”出现的地方。它可以是“MyCell.self”等。这里的.self 只是表示使用此类作为模板来创建单元格。注册的第二部分是将标识符附加到模板/类中,以便于引用。
self.collectionView - self 是 View Controller
UICollectionViewCell.self - self 是要使用的单元格的“实例类型”。系统使用此信息为您构建一个单元格。
关于ios - self.collectionView 和 UICollectionViewCell.self 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45324518/