UICollectionView左对齐单元格的动态宽度

时间:2017-12-01 22:06:25

标签: ios swift uicollectionview uicollectionviewcell uicollectionviewlayout

所以我有一个如下所示的集合视图:

       -----------              ----------------
      | some text |            | Some more text |
       -----------              ----------------
 -----------------------    -----------------------
| Some really Long text |  | Some longer text here |
 -----------------------    -----------------------

我希望如此:

 -----------                ----------------
| some text |              | Some more text |
 -----------                ----------------
 -----------------------    -----------------------
| Some really Long text |  | Some longer text here |
 -----------------------    -----------------------

我能够让我的单元格动态调整它们的宽度以允许标签显示其文本,但我希望所有单元格都与它们的部分插入对齐而不是居中。

编辑: 到目前为止,我已经尝试了很多东西,但这是最后一件事(实际上没有工作)

class LeftAlignedCollectionViewFlowLayout: UICollectionViewFlowLayout {

    override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {

        let attributesForElementsInRect = super.layoutAttributesForElements(in: rect)
        var newAttributesForElementsInRect = [UICollectionViewLayoutAttributes]()

        for attributes in attributesForElementsInRect! {
            let refAttributes = attributes
            refAttributes.frame.origin.x = self.sectionInset.left + 8
            newAttributesForElementsInRect.append(refAttributes)
        }

        return newAttributesForElementsInRect
    }
}

我不确定是否更容易将每个单元格的宽度设置为彼此相等的部分,这会强制部分中的所有单元格彼此对齐而不是居中该部分。我不知道如何处理这个问题 - sizeForItemAt似乎是宫殿开始,但我不想覆盖自动布局为标签动态设置宽度。

0 个答案:

没有答案