如何包装自适应大小的UICollectionViewCell

17

我的目标是拥有一个动态内容的UICollectionView,其中每个单元格都包含句子的一部分,并且用户可以编辑每个句子的部分。问题在于,句子的某些部分可能比容器本身更长。使用sizeToFit不是一个替代选择,因为所有内容应该具有相同的字体大小,以保持集合视图的可读性。

目前我得到的行为是,当我有一个比容器更长的句子部分时,如下所示:

第三行有省略号

如您所见,第三行有省略号。

我想要实现的是,单元格的溢出部分应该像HTML中的span标签一样换行,如下所示:

第三行换行

这是可能的吗?我该如何实现这样的效果?

1个回答

1
据我所知,这是可能的,但相对复杂 - 这里有一些指针,我认为你需要以下几点:
  • 2个额外的集合视图单元格类型:第一个只有左边缘是圆角的,第二个只有右边缘是圆角的
  • 使用Core Text API测量文本需要换行的位置
  • 在你的数据源中,你需要在创建单元格之前识别出这种情况,然后不是创建一个单元格,而是创建两个单元格,使用那些新类型。

当一个文本部分具有两个单元格时,我该如何处理用户编辑?该块应随用户输入特定文本部分而增长/缩小。 - Afonso
如果你想使用UICollectionView,这是一个不错的主意。你可以进一步将每个句子按空格分割,然后在集合视图中显示起始、中间或结束单元格。 - Luke Van In
直接编辑可能会有问题,将字符串和形状绘制到CGContext中可能更有效。 - Luke Van In

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接