在 UICollectionViewCell 中显示点 (5*5) 的更好方法 - Swift

Better way to display dot (5*5) in UICollectionViewCell - Swift

我只想知道在 UICollectionViewCell 中 draw/display 点的最佳和更好的方法。

我想为 image/video 显示圆点,无论 image/video 是否在社交媒体上共享。在上图中,深蓝色点表示 image/video 在 Facebook 上分享,浅蓝色点表示在 Twitter 上分享。

所以我的问题是,哪种方法更好?

  1. 在单元格上添加 UIView 并填充颜色和角半径。

  2. 使用 UIImageView 制作 1x、2x、3x 图像并显示在单元格中。

  3. 使用 CAShapeLayer() 和 UIBezierPath()。

或任何其他方式?

哪个最好,与内存和性能的关系如何?

Subclass a UICollectionViewCell 并添加一个 UIView 并设置 layer.cornerRadius 和背景颜色。这种方法可以完全以编程方式或使用 xib 实现。

实际上,如果您想动态设置点大小,您可以为每个大小单独添加约束 class。

相比之下,

CAShapeLayer 占用大量内存。图像视图方法也不必要地增加文件大小。