比较NSCollectionView和UICollectionView#1

在将应用程序从iOS移植到macOS时,可以比较相似之处并移植代码。 自2015年使用OSX El Capitan 10.11(现称为macOS)以来,NSCollectionView已改进为现代API,看起来很像iOS的同级产品。 但是,仍有一些细微的更改,您需要进行研究才能注意到。 我将在以后的帖子中写这些。

这次,我将从内容容器的核心元素开始。 在macOS中,它称为NSCollectionViewItem。 在iOS中,您将找到它作为UICollectionViewCell。

内容容器的性质

为了指出这两个容器的基本原理,应从其祖先开始。 继承树如下所示:

NSCollectionViewItem> NSViewController

UICollectionViewCell> UICollectionReusableView> UIView

在macOS环境中,容器是一个控制器,它像其他View Controller一样具有一堆生命周期方法。 但是,在iOS中,它是一种视图,可以包含元素的子视图。

查看层次结构

为了继续上一点,默认情况下NSCollectionViewItem没有视图。 必须以编程方式或使用Interface Builder创建视图。 您可以在YouTube视频中了解有关如何构建此基础的更多信息。

在iOS中,它要简单得多。 假设您正在使用Interface Builder构建内容,只需将组件拖动到创建UICollectionViewCell附带的视图中即可

此外, UICollectionViewCell还具有一些访问视图的默认属性。

contentView-创建随附的默认视图

backgroundView —(可选)显示在单元格其他内容后面的视图

selectedBackgroundView —(可选)选择单元格时在背景视图上方显示的视图

在下一篇文章中,我将讨论准备此内容容器的区别。

参考文献

NSCollectionViewItem
项目是集合视图显示的最常见的元素类型,每个集合视图都必须位于… developer.apple.com UICollectionViewCell – UIKit | Apple开发人员文档
当一个数据项位于集合视图中时,UICollectionViewCell对象将显示该数据项的内容。developer.apple.com