ios - self.collectionView 和 UICollectionViewCell.self 的区别

标签 ios swift

我知道 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/

相关文章:

ios - 如何在 SwiftUI 中缩放系统字体以支持动态类型?

ios - 在 iOS 上运行本地 CGI Web 服务器

ios - 无法从构建环境获取 Google 服务文件中的 GOOGLE_APP_ID

swift - 应用程序 :continueUserActivity:restorationHandler: is not getting called when using handoff

ios - 如何添加带有翻转动画的 subview ?

iphone - NSCaseInSensitive在iOS中

ios - 按下按钮时以编程方式快速关闭键盘?

ios - uiwebview 正在缩小到 uiscrollview 内

ios - awakeFromNib() 调用了两次

ios - 淡入淡出动画