UICollectionViewCell 动态宽度和固定高度

iPh*_*e 7 3 gridview ios uicollectionview ios11 xcode9

我需要制作椭圆形的 UICollectionView 单元格,其中高度是固定的,但宽度是动态的,并且它也有限制,如果文本长于该值,则文本应该滚动。任何可用于此的第三方选项或需要使用 UICollectionView 创建自己的选项。请指导。

在此处输入图片说明

下面是我想要实现的图像。我想知道在开始之前我应该​​寻找第三方还是使用 UICollectionView 来制作自己的。我有很短的时间来完成这就是为什么要避免在开始时询问自己要遵循的方向的时间。请指导。

Tim*_*Tim 5

您可以使用 UICollectionViewFlowLayout 和 Auto Layout 来实现这一点。

  1. 创建一个带有容器视图的 UICollectionViewCell。
  2. 使用自动布局固定此容器视图单元格的边缘
  3. 向这个容器视图添加一个 UILabel 并将其固定到容器视图的所有边缘(给它一个背景颜色以区别于单元格背景)
  4. 在 UICollectionViewCell 子类中,您需要圆化容器视图的角,例如 self.containerView.layer.cornerRadius = self.containerView.height / 2
  5. 在 UICollectionViewFlowLayoutDelegate 方法中,estimatedSizeForItem 返回单元格的近似大小(自动布局将计算实际大小。)

要记住的重要一点是您的单元格需要有足够的约束,以便自动布局引擎可以根据内容计算实际的高度和宽度。

编辑:如果您想要固定高度,请确保您的标签只能有一行。或者添加一个高度约束。