【问题标题】:How to wrap self sizing UICollectionViewCell如何包装自定尺寸 UICollectionViewCell
【发布时间】:2016-03-16 13:46:37
【问题描述】:

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

现在,当我的句子的一部分比容器长时,我得到的行为如下:

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

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

这可能吗?我怎样才能做到这样的事情?

【问题讨论】:

    标签: ios swift uicollectionview ios9 uicollectionviewcell


    【解决方案1】:

    据我所知,这是可能的,但很复杂 - 以下是我认为您将需要的一些指示:

    • 2 个额外的集合视图单元格类型:在第一个中,只有左边缘是圆角的,在第二个中只有右边缘
    • 使用 Core Text API 测量文本需要换行的位置
    • 在您的数据源中,您必须在创建单元格之前识别情况,然后使用您拥有的新类型创建两个单元格,而不是创建一个单元格。

    【讨论】:

    • 如果同一文本部分有两个单元格,我将如何处理用户版本?该块应随着用户键入特定文本部分而增大/缩小
    • 如果你想使用 UICollectionView,这是个好主意。你可以更进一步,用空格分割每个句子,然后在集合视图中显示一个开始、中间或结束单元格。
    • 就地编辑可能是个问题,将字符串和形状绘制到 CGContext 可能会更好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    相关资源
    最近更新 更多