UICollectionViewController与自定义UICollectionViewFlowLayout - 滚动错误

时间:2016-09-23 16:01:27

标签: ios swift3 uicollectionview

我正在使用下面的自定义UICollectionViewFlowLayout代码来实现自动调整大小和固定宽度的自我调整大小。它工作正常,但滚动不能正常工作。如果内容超出约0-60像素范围,则根本不允许滚动。如果它高一点,它会滚动,但会有一个断断续续的高度和滚动条的高度。

class CustomFlowLayout: UICollectionViewFlowLayout {
 override func layoutAttributesForItem(at indexPath: IndexPath) -> UICollectionViewLayoutAttributes? {
    let attributes = super.layoutAttributesForItem(at: indexPath)?.copy() as? UICollectionViewLayoutAttributes
    guard let collectionView = collectionView else { return attributes }
    attributes?.bounds.size.width = collectionView.bounds.width
    return attributes
 }

 override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
    let allAttributes = super.layoutAttributesForElements(in: rect)
    return allAttributes?.flatMap { attributes in
        switch attributes.representedElementCategory {
        case .cell: return layoutAttributesForItem(at: attributes.indexPath)
        default: return attributes
        }
    }
 }
}

我该怎么做才能防止这种情况发生?

0 个答案:

没有答案